#include<stdio.h>
#include<string.h>
long long int mat[1005][1005];
long long int color[1002],cost[1002];
int main()
{
long long int p,d,t,c1,c2,i,j,k,front,rear,queue[1002],a,b;
scanf("%lld",&t);
for(k=1;k<=t;k++)
{
memset(color,0,1002);
memset(cost,0,1002);
memset(mat,0,sizeof(mat));
scanf("%lld%lld",&p,&d);
for(i=0; i<d; i++)
{
scanf("%lld%lld",&c1,&c2);
mat[c1][c2]=1;
mat[c2][c1]=1;
}
front=rear=0;
a=0;
queue[rear++]=a;
color[a]=1;
while(front!=rear)
{
b=queue[front++];
for(i=0;i<p;i++)
{
if(mat[b][i]==1&&color[i]==0)
{
color[i]=1;
queue[rear++]=i;
cost[i]=cost[b]+1;
}
}
}
for(j=1;j<p;j++)
{
printf("%lld\n",cost[j]);
}
if(k!=t)
{
printf("\n");
}
}
return 0;
}
#include<string.h>
long long int mat[1005][1005];
long long int color[1002],cost[1002];
int main()
{
long long int p,d,t,c1,c2,i,j,k,front,rear,queue[1002],a,b;
scanf("%lld",&t);
for(k=1;k<=t;k++)
{
memset(color,0,1002);
memset(cost,0,1002);
memset(mat,0,sizeof(mat));
scanf("%lld%lld",&p,&d);
for(i=0; i<d; i++)
{
scanf("%lld%lld",&c1,&c2);
mat[c1][c2]=1;
mat[c2][c1]=1;
}
front=rear=0;
a=0;
queue[rear++]=a;
color[a]=1;
while(front!=rear)
{
b=queue[front++];
for(i=0;i<p;i++)
{
if(mat[b][i]==1&&color[i]==0)
{
color[i]=1;
queue[rear++]=i;
cost[i]=cost[b]+1;
}
}
}
for(j=1;j<p;j++)
{
printf("%lld\n",cost[j]);
}
if(k!=t)
{
printf("\n");
}
}
return 0;
}
0 comments: (+add yours?)
Post a Comment