AOJ 1045: Split Up!
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1045
ビットでやると楽だった
#include<cstdlib> #include<iostream> #include<cstdio> #include<vector> using namespace std; int main(){ int n; while(cin >> n && n){ int ret = 1<<28 , sum = 0; vector < int > v(n); for(int i = 0; i < n; i++){ cin >> v[i]; sum += v[i]; } for(int i = 0; i < (1<<n); i++){ int l = 0 ; for(int j = 0 ; j < n ; j++){ if((i>>j)&1)l += v[j]; } ret = min(ret,abs(sum-l-l)); } cout << ret << endl; } }