はやし屋

競技プログラミングのメモ きたない

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;
  }
}