也可以用DP做
这个题排序那儿出了问题,导致翻车。
sort函数中,n大小的数组要排序到n+1,切记
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define INF 1000005
using namespace std;
int num[INF],sum[INF];
int main()
{
int T,kase=0;
scanf("%d",&T);
while(T--)
{
memset(num,0,sizeof(num));
memset(sum,0,sizeof(sum));
int N;
scanf("%d",&N);
for(int i=0;i<N;i++)
scanf("%d",&num[i]);
sum[0]=num[0];
for(int i=1;i<N;i++)
for(int j=0;j<=i;j++)
sum[i]+=num[j];
sort(sum,sum+N+1);
int minx=INF;
for(int i=0;i<N;i++)
if(abs(sum[i]-sum[i+1])<minx) minx=abs(sum[i]-sum[i+1]);
printf("Case %d: %d\n",++kase,minx);
}
return 0;
}