#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define N 1000
#define M 5010
int f[2][2 * M + 5], a[N + 5], b[N + 5];
int n, up, down;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i] >> b[i];
up += a[i];
down += b[i];
}
memset(f, inf, sizeof(f));
f[0 & 1][up - down + M] = 0;
for (int i = 1; i <= n; i++) for (int j = -5000; j <= 5000; j++) {
f[i & 1][j + M] = min(f[i - 1 & 1][j - (2 * b[i] - 2 * a[i]) + M], f[i - 1 & 1][j + M]);
}
for (int i = 0; i <= 5000; i++) {
if (f[n & 1][i + M] < inf) {
cout << f[n & 1][i + M];
break;
} else if (f[n & 1][-i + M] < inf) {
cout << f[n & 1][-i + M];
break;
}
}
return 0;
}