题目描述
有 个苹果,其重量已知。 你的任务是将苹果分成两组,使各组的重量差异最小。
输入格式
第一输入行有一个整数 :苹果的数量。
下一行有 个整数 :每个苹果的重量。
输出格式
打印一个整数:两组重量之间的最小差异。
样例
Input:
复制5
3 2 7 4 1
_____________________________________________________________________________
真服了,还以为是贪心结果是**枚举;
是我高估他了;
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
#include <bits/stdc++.h>
using namespace std;
long long n,cnt[105],ans=1000000000;
void check(long long a,long long b,int c){
if(c==n+1&&abs(a-b)<ans)ans=abs(a-b);
if(c<=n){
check(a+cnt[c],b,c+1);
check(a,b+cnt[c],c+1);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>cnt[i];
}
check(0,0,1);
cout<<ans;
}