#include #include #include char d[1000][32], used[1001]; int i,j,k,m,n,c,tot,source,sink; int ar[256], adj[256][256],out[1000]; int nused[256]; int ad[256][256]; mark(char x){ int i; for (i='a';i<='z';i++) { if (ad[x][i] > 0) { ad[x][i] = -1; mark(i); } } } reachable(char x) { int i,j; memcpy(ad,adj,sizeof(adj)); mark(x); for (i='a';i<='z';i++) for (j='a';j<='z';j++) if (ad[i][j] > 0) return 0; return 1; } main(){ scanf("%d",&c); while (c--) { if(1 != scanf("%d",&n)) {printf("missing input\n");exit(1);}; memset(ar,0,sizeof(ar)); memset(adj,0,sizeof(adj)); tot = n-1; for (i=0;i=0; source++); if (source > 'z') source = d[0][0]; memset(used,0,sizeof(used)); memset(nused,0,sizeof(nused)); for (j=0;j