这题不能用dp啊,真是蛋疼。
#include"stdio.h" int a[1005],sum[1005],s[1005]; int cal(int x) { return x>0?x:-x; } int main( ) { int t,n,i,min,j,sum,count=1; scanf("%d",&t); while(t--) { scanf("%d",&n); min=0xffffff; sum=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { sum=0; for(j=i;j<=n;j++) { sum+=a[j]; if(cal(sum)<min) min=cal(sum); if(min==0) break; } if(min==0) break; } printf("Case %d: %d\n",count++,min); } return 0; }