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:大家帮忙看看我的为什么老是WA,郁闷中.......In Reply To:大家帮忙看看我的为什么老是WA,郁闷中....... Posted by:baidu85 at 2008-02-23 15:20:46 > #include<stdio.h> > #include<stdlib.h> > #include<string.h> > int a[16]; > int status[16]; > int ca,M,sum,ave,flag; > > int cmp(const void* a,const void* b) > { > return(*(int*)a-*(int*)b); > } > > void DFS(int st,int now,int edge) > { > if(edge==3) > { > flag=1; > return; > } > else if(!flag) > { > int i; > for(i=st;i>=0&&!flag;i--) > { > if(!status[i]) > { > if(now+a[i]==ave) > { > status[i]=1; > DFS(M-1,0,edge+1); > status[i]=0; > } > else if(now+a[i]<ave) > { > status[i]=1; > DFS(i,now+a[i],edge); > status[i]=0; > } > } > } > } > } > > void main() > { > scanf("%d",&ca); > while(ca--) > { > int i; > sum=0; > memset(status,0,sizeof(status)); > scanf("%d",&M); > for(i=0;i<M;i++) > { > scanf("%d",&a[i]); > sum+=a[i]; > } > if(sum%4) > { > printf("no\n"); > continue; > } > ave=sum/4; > qsort(a,M,sizeof(int),cmp); > if(a[M-1]>ave) > { > printf("no\n"); > continue; > } > flag=0; > DFS(M-1,0,0); > if(flag) > printf("yes\n"); > else > printf("no\n"); > } > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator