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 |
感谢所有出数据的牛人们WA得热泪盈眶,就用大家给的数据就过了。。好感动。。谢谢各位。。。 再次转载 input: 3 2 1 1 2 < 1 2 3 < 3 2 1 1 2 > 1 1 3 > 5 1 2 1 2 3 4 = 4 3 2 1 2 3 4 < 2 1 3 2 4 < 1 2 4 = 5 3 2 1 3 2 4 > 2 3 5 2 4 > 1 1 4 > 5 3 2 1 3 2 4 > 2 3 5 2 4 > 1 1 4 = output: 0 1 5 1 4 0 我的代码: #include <iostream> #include <stdio.h> #include <string.h> using namespace std; const int NN=10100; const int MM=310; bool havel[NN][MM],haver[NN][MM]; short judge[MM]; int n,m,p; bool check(int x,bool light) { bool nicel,nicer; for (int i=0;i<m;++i) { if (havel[i][x]) nicel=true; else nicel=false; if (haver[i][x]) nicer=true; else nicer=false; if (judge[i]==0 && ((nicel&&nicer)||(!nicel && !nicer))) continue; else if (judge[i]==-1 && ( (light && nicel && !nicer) || (!light && !nicel && nicer))) continue; else if (judge[i]==1 && ((light && !nicel && nicer) || (!light && nicel && !nicer))) continue; else return false; } return true; } int main() { while (scanf("%d%d",&n,&m)!=EOF) //scanf("%d%d",&n,&m); { char pp; memset(havel,0,sizeof(havel));memset(haver,0,sizeof(haver)); for (int i=0;i<m;++i) { scanf("%d",&p); for (int j=0;j<p;++j) { int tmp; scanf("%d",&tmp); havel[i][tmp]=1; } for (int j=0;j<p;++j) { int tmp; scanf("%d",&tmp); haver[i][tmp]=1; } scanf("\n%c",&pp); if (pp=='=') judge[i]=0; else if (pp=='<') judge[i]=-1; else judge[i]=1; } int ans=-1; for (int q=0;q<2;++q) { if (ans==-2) break; for (int i=1;i<=n;++i) { if (check(i,q)) { if (ans>0 && ans!=i) { ans=-2; break; } else ans=i; } } } if (ans==-2 || ans==-1) printf("0\n"); else printf("%d\n",ans); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator