#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
int mat[25][25];
int cost[25],color[25];
queue<int>Q;
int n,a,koyta_pair,i,j,k,counter,u,Start,End,tc=0;
int main()
{
while(cin>>n)
{
counter=0;
for(k=1;k<=19;k++)
{
for(i=1; i<=n; i++)
{
cin>>a;
mat[k][a]=1;
mat[a][k]=1;
}
if(k==19)
{
break;
}
cin>>n;
}
cin>>koyta_pair;
printf("Test Set #%d\n",++tc);
for(i=1; i<=koyta_pair; i++)
{
cin>>Start>>End;
Q.push(Start);
color[Start]=1;
while(!Q.empty())
{
u=Q.front();
for(j=1; j<=20; j++)
{
if(mat[u][j]==1 && color[j]!=1)
{
color[j]=1;
cost[j]=cost[u]+1;
Q.push(j);
}
}
Q.pop();
}
printf("%2d to %2d: %d\n",Start,End,cost[End]);
memset(cost,0,sizeof(cost));
memset(color,0,sizeof(color));
}
printf("\n");
memset(mat,0,sizeof(mat));
memset(cost,0,sizeof(cost));
memset(color,0,sizeof(color));
}
return 0;
}
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
int mat[25][25];
int cost[25],color[25];
queue<int>Q;
int n,a,koyta_pair,i,j,k,counter,u,Start,End,tc=0;
int main()
{
while(cin>>n)
{
counter=0;
for(k=1;k<=19;k++)
{
for(i=1; i<=n; i++)
{
cin>>a;
mat[k][a]=1;
mat[a][k]=1;
}
if(k==19)
{
break;
}
cin>>n;
}
cin>>koyta_pair;
printf("Test Set #%d\n",++tc);
for(i=1; i<=koyta_pair; i++)
{
cin>>Start>>End;
Q.push(Start);
color[Start]=1;
while(!Q.empty())
{
u=Q.front();
for(j=1; j<=20; j++)
{
if(mat[u][j]==1 && color[j]!=1)
{
color[j]=1;
cost[j]=cost[u]+1;
Q.push(j);
}
}
Q.pop();
}
printf("%2d to %2d: %d\n",Start,End,cost[End]);
memset(cost,0,sizeof(cost));
memset(color,0,sizeof(color));
}
printf("\n");
memset(mat,0,sizeof(mat));
memset(cost,0,sizeof(cost));
memset(color,0,sizeof(color));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment