http://acm.timus.ru/problem.aspx?space=1&num=1005
用n个数中取一个数的方法居然超时了
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n;
int visit[20];
int a[20];
int sum = 0;
int min1 = 1<<30;
void dfs(int values, int cur){
if(cur==n){
return;
}
int t = sum - values - values;
t = abs(t);
if(t<min1){
min1 = t;
}
dfs(values+a[cur], cur+1);
dfs(values, cur+1);
}
int main(){
cin>>n;
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
sum+=a[i];
}
dfs(0, 0);
cout<<min1<<endl;
return 0;
}