#include #define rep(i,n)for(int i=0;i<(n);i++) using namespace std; #define int long long int a[16], b[16], c[16], d[16]; signed main() { int n; scanf("%lld", &n); int A = n / 2, B = n - n / 2; rep(i, A)scanf("%lld%lld", &a[i], &b[i]); rep(i, B)scanf("%lld%lld", &c[i], &d[i]); vectoru, v; rep(i, 1 << A) { int cnt = 0; rep(j, A) { if (i >> j & 1)cnt += a[j]; else cnt -= b[j]; } u.push_back(cnt); } rep(i, 1 << B) { int cnt = 0; rep(j, B) { if (i >> j & 1)cnt += c[j]; else cnt -= d[j]; } v.push_back(cnt); } sort(v.begin(), v.end()); int Min = LLONG_MAX; for (int i : u) { auto it = lower_bound(v.begin(), v.end(), -i);//-i以上 Min = min(Min, abs(i + *it)); if (it != v.begin()) { Min = min(Min, abs(i + *--it)); } } cout << Min << endl; }