#include <stdio.h> #include <string.h> #define maxn 51 int isvisited[maxn],mat[maxn][maxn],n; void bfs(int vo){ int i; printf("%d ",vo); isvisited[vo]=1; for (i=0;i<n;i++) { if (isvisited[i]==0&&mat[vo][i]==1) { bfs(i); } } } int main(){ int i,j; // freopen("1.txt","r",stdin); while (scanf("%d",&n)!=EOF) { for (i=0;i<n;i++) { for (j=0;j<n;j++) { scanf("%d",&mat[i][j]); } } memset(isvisited,0,sizeof(isvisited)); for (i=0;i<n;i++) { if (isvisited[i]==0) { bfs(i); printf("\n"); } } } // fclose(stdin); return 0; } /************************************************************** Problem: 2161 User: admin Language: C Result: Accepted Time:16 ms Memory:1156 kb ****************************************************************/