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 |
没辙了!帮忙看一下算法#include<stdio.h> #include<malloc.h> void quickSort(int *n); int isFill(int lenth,int total); int N; int p=0; int *num; int sum=0; int main() { int i,max; scanf("%d",&N); while(N>0) { sum=0; num=(int *)malloc(N*sizeof(int)); for(i=0;i<N;i++) { scanf("%d",&num[i]); sum=sum+num[i]; } quickSort(num); max=num[0]; for(i=max;i<=sum;i++) { if(sum%i==0) { if(isFill(i,sum/i)) { printf("%d\n",i); break; } } } free(num); scanf("%d",&N); } return 0; } void quickSort(int n[]) { int i,j; int temp; for(i=0;i<N;i++) for(j=i;j<N;j++) { if(n[i]<n[j]) { temp=n[i]; n[i]=n[j]; n[j]=temp; } } } int isFill(int lenth,int total) { int i,j,flag=0; int *str; str=(int *)malloc(total*sizeof(int)); for(i=0;i<total;i++) { str[i]=lenth; } for(i=0;i<N;i++) { flag=0; for(j=0;j<total;j++) { if(str[j]-num[i]>=0) { flag=1; str[j]=str[j]-num[i]; break; } } if(flag==0) { free(str); return 0; } } free(str); return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator