#include #include using namespace std; int n, a, b, dp[100009]; int main() { cin >> n; for (int i = 1; i <= 100000; ++i) { dp[i] = 1 << 30; } int s = 0; for (int i = 0; i < n; ++i) { cin >> a >> b; for (int j = 0; j <= s; ++j) dp[j] += b; s += a; for (int j = s; j >= a; --j) dp[j] = min(dp[j], dp[j - a] - b); } int ret = s; for (int i = 0; i <= s; ++i) { ret = min(ret, max(i, dp[i])); } cout << ret << '\n'; return 0; }