Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:why WAIn Reply To:why WA Posted by:lookus at 2004-09-12 22:04:15 #include <stdio.h> int g[1001][1001],n; int p[1001][1010],q; int v[1001]; int next(int k) { int i; for(i=1;i<=n;i++) if(g[k][i] && v[i]==0) { p[q][p[q][0]] = i; p[q][0]++; // printf("%d ",i); v[i] = 1; return i; } return 0; } int back(int k) { int i; for(i=1;i<=n;i++) if(g[i][k] && v[i]==0) { p[q][p[q][1009]] = i; p[q][1009]--; // printf("%d ",i); v[i] = 1; return i; } return 0; } int apath() { int i,b; for(i=1;i<=n;i++) if(v[i]==0) break; if(i>n) return 0; p[q][0] = 2; p[q][1] = i; p[q][1009] = 1008; // printf("%d ",i); v[i] = 1; b = i; while(i) i = next(i); i = b; while(i) i = back(i); return 1; } void main() { int i,j; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) { v[i] = 0; for(j=1;j<=n;j++) scanf("%d",&g[i][j]); } q = 0; while(apath()) q++; printf("%d\n",q); for(i=0;i<q;i++) { printf("%d\n",1007+p[i][0] -p[i][1009]); for(j=p[i][1009]+1;j<=1008;j++) printf("%d ",p[i][j]); for(j=1;j<p[i][0];j++) printf("%d ",p[i][j]); printf("\n"); } } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator