分析
版子题。
有用这个人和不用两种情况。
直接搜索所有情况
上代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int t,n,a[1001],mi,s,m;
void dfs(int x,int y,int z)
{
if(y==m)
{
mi=min(mi,abs(s-2*z));
return;
}
if(x>n) return;
dfs(x+1,y+1,z+a[x]);
dfs(x+1,y,z);
}
int main()
{
cin>>t;
while(t--)
{
cin>>n;
if(n%2) m=n/2+1;
else m=n/2;
mi=2147483647;
s=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s+=a[i];
}
dfs(1,0,0);
cout<<mi<<endl;
}
return 0;
}