Solution
#include <stdio.h>
#include <stdlib.h>
#define MOD 10000000
int main()
{
int T,N,sum,values[1000],i,j;
long long dp[10001],total;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
sum=0;
for(i=0;i<N;i++)
{
scanf("%d",&values[i]);
sum=sum+values[i];
}
for(i=0;i<=sum;i++)
{
dp[i]=0;
dp[0]=1;
}
for(i=0;i<N;i++)
{
for(j=sum;j>=0;j--)
{
if(dp[j]>0)
{
dp[j+values[i]]=((dp[j+values[i]])+(dp[j]))%MOD;
}
}
}
total=0;
for(i=0;i<=sum;i++)
{
if(dp[i]>0)
{
long long inc=((long long)((((long long)abs(sum-2*i)))*(dp[i])))%MOD;
total=(total+inc)%MOD;
}
}
printf("%Ld\n",total);
}
return 0;
}
No comments:
Post a Comment