// compile: g++ -o data data.cpp -std=gnu++20 -DLOCAL // run: ./data < data.in #include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #ifdef LOCAL #endif #define sz(v) ((int)(v).size()) #define PV(v) for (int i=0;i<v.size();++i)cout<<v[i]<<" ";cout<<endl; #define INTINF 9223372036854775807 #define int long long using namespace std; int n, sum; vector<int> f, a; int minv = INTINF; void check() { int s = 0; for (int i = 0; i < n; ++i) if (a[i]) s += f[i]; minv = min(minv, abs(sum - s - s)); } void dfs(int k) { if (k >= n) { check(); return; } for (int i = 0; i < 2; ++i) { a[k] = i; dfs(k + 1); } } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); sum = 0; cin >> n; for (int i = 0; i < n; ++i) { int x; cin >> x; sum += x; f.push_back(x); } a.resize(n); dfs(0); cout << minv << endl; return 0; }
No Comments