Painsan麺包少女 2017-12-03
时间限制:3000ms | 内存限制:65535KB
难度:2
5 5 8 13 27 14
3


#include<stdio.h>
#include<math.h>
#include<limits.h>
int n, total, mi, sum;
int weight[];
void dfs(int cur, int sum){
if(n == cur)
return;
int t;
t=(int)fabs(total - sum * ); //差值=(total-c小加)-c小加
if(t < mi)
mi = t;
dfs(cur+, sum); //存在两种情况,一种分一种不分,这一种是不分,下面的是分
dfs(cur+, sum+weight[cur]);
}
int main()
{
int i;
while(scanf("%d", &n)!=EOF)
{
total = ;
for(i=;i<n;i++)
{
scanf("%d", &weight[i]);
total += weight[i];
}
mi = INT_MAX;//系统默认最大值
dfs(, );
if(n==)
printf("0\n");
else
printf("%d\n", mi);
}
return ;
}View Code