#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i VI; typedef vector VVI; struct data{ int V,T; }; bool dp[20011]; int main() { int N; cin>>N; vector dat(N); FOR(i,N) scanf("%d%d",&dat[i].V,&dat[i].T); sort(ALL(dat),[](const data&d1, const data&d2){ int take1 = d2.T - d1.V; int take2 = d1.T - d2.V; if(take1 != take2){ return take1 > take2; } return d1.T < d2.T; }); memset(dp , 0 , sizeof(dp)); dp[0] = true; for(const auto& d : dat){ for(int i=d.T-1;i>=0;i--){ dp[i+d.V] |= dp[i] ; } } int ans = 0; for(int i=20000;i>=0;i--){ if(dp[i]){ ans=i; break; } } cout<