#include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define MT make_tuple #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)<; using vi = vector; using vll = vector; vll f(int l, int r, vll &A, vll &B) { int n = r - l; vll dp(1 << n); rep(S, 1 << n) { rep(i, n) { if (S >> i & 1)dp[S] += A[i+l]; else dp[S] -= B[i+l]; } } return dp; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vll A(n), B(n); rep(i, n) { cin >> A[i] >> B[i]; } if (n == 1) { cout << min(A[0], B[0]) << endl; return 0; } int m = n / 2; vll x = f(0, m, A, B), y = f(m, n, A, B); sort(all(y)); ll ans = LLONG_MAX; each(z, x) { int k = lower_bound(all(y), -z) - y.begin(); FOR(i, k - 5, k + 5) if (0 <= i && i < sz(y)) { smin(ans, abs(z+y[i])); } } cout << ans << endl; }