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呢?我测试了N多的数据了!!!(程序)help!!!In Reply To:为什么WA呢?我测试了N多的数据了!!!(程序)help!!! Posted by:hujk2008 at 2004-07-07 03:45:03 > #include<stdio.h> > #include<stdlib.h> > > #define max 300 > > int a[max]={0},b[max]={0},flag=0,n=0,k=0,FF=0; > > int cmp(const void * x,const void * y) > { > int * p,*q; > p=(int *)x; > q=(int *)y; > if(*p>*q)return 1; > if(*p==*q)return 0; > if(*p<*q)return -1; > } > > int search_1(int dangqian,int mm) > { > int i; > if(FF)return 1; > for(i=mm;i>-1;i--) > { > if(dangqian+a[i]>k||b[i]==1)continue; > dangqian+=a[i]; > b[i]=1; > if(dangqian==k) > { > FF=1; > return 1; > } > search_1(dangqian,mm-1); > if(FF)return 1; > b[i]=0; > dangqian-=a[i]; > } > return 1; > } > > > int judge() > { > int i,j,dangqian=0; > hehe: for(i=0;i<n;i++) > { > FF=0; > search_1(0,n-1); > if(FF)break; > else > return 1; > } > for(i=0;i<n;i++) > { > if(b[i]==0) > { > dangqian=0; > goto hehe; > } > if(i==n-1){flag=1;return 1;} > } > return 1; > } > > > int main() > { > int sum,i,j,temp=0; > scanf("%d",&n); > while(n) > { > for(i=0;i<max;i++) > { > a[i]=0; > b[i]=0; > } > sum=0;flag=0;k=0; > for(i=0;i<n;i++) > { > scanf("%d",&a[i]); > sum+=a[i]; > } > qsort((void *) a,n,sizeof(int),cmp); > temp=a[n-1]; > for(k=temp;k<=sum;k++) > { > if(sum%k!=0)continue; > for(j=0;j<max;j++) > b[j]=0; > judge(); > if(flag) > { > printf("%d\n",k); > break; > > } > } > scanf("%d",&n); > } > return 1; > } > > > > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator