// #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include using std::cin, std::cout, std::cerr; using ll = long long; int main() { std::ios::sync_with_stdio(false); int n; cin >> n; int m = 1e5; std::vector f(m + 1); while(n --) { std::vector g(m + 1, 1e9); int a, b; cin >> a >> b; for(int i = 0; i <= m; i ++) { g[i] = std::min(g[i], f[i] + b); if(i >= a) g[i] = std::min(g[i], f[i - a]); } f = g; } int ans = 1e9; for(int i = 0; i <= m; i ++) ans = std::min(ans, std::max(i, f[i])); cout << ans << '\n'; }