10959 - The Party, Part I

#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;
}

0 comments: (+add yours?)