http://acm.hdu.edu.cn/showproblem.php?pid=4223
View Code
#include <stdio.h> #include <stdlib.h> #include <string.h> #define INF 100000000 int cmp(const void*a,const void*b) { return *(int*)a-*(int*)b; } int a[110000],s[110000]; int main() { int t,n; int i; int min; int nCase=1; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",a+i); s[0]=0; for(i=1;i<=n;i++) s[i]=s[i-1]+a[i]; qsort(s,n+1,sizeof(int),cmp); min=INF; for(i=0;i<n;i++) if(min>s[i+1]-s[i]) min=s[i+1]-s[i]; printf("Case %d: %d\n",nCase++,min); } return 0; }