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....#include "stdio.h" #include "stdlib.h" struct item{ int D; struct item *next; }; struct item *head[1001]; int n,x[1001],bestL,cL,NO; int Judge(int i) { int flag,flag1; struct item *p; flag1=flag=0; p=head[i]; while(p!=NULL) {if(!x[p->D]) {x[p->D]=1;flag=1;} p=p->next; } if(flag==1) {p=head[i]; while(p!=NULL) {if(Judge(p->D)) flag1=1; p=p->next; } } if(flag1) cL++; if(flag) return 1; else return 0; } int insert(int i,int j) {struct item *p; p=(struct item *)malloc(sizeof(struct item)); p->D=j; p->next=head[i]; head[i]=p; return 0; } int main() {int i,j,k; while(scanf("%d",&n)!=EOF) {for(i=0;i<1001;i++) head[i]=NULL; for(i=1;i<=n;i++) {scanf("%d",&j); while(j--) {scanf("%d",&k); insert(i,k); } } NO=-1;bestL=-1; for(i=1;i<=n;i++) {for(j=1;j<=n;j++) x[j]=0; cL=0; x[i]=1; if(Judge(i)) cL++; for(j=1;j<=n;j++) if(x[j]==0) break; if((cL>bestL||cL==bestL&&i>NO)&&j>n) {bestL=cL;NO=i;} } if(bestL!=-1) printf("%d\n%d\n",bestL,NO); else printf("impossible\n"); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator