#include using namespace std; #define int long long #define pb push_back #define fi first #define se second #define rep(i,s,n) for(int i = s;i=(s);i--) #define all(v) (v).begin(),(v).end() #define chmin(a,b) a=min((a),(b)) #define chmax(a,b) a=max((a),(b)) #define low(a,b) lower_bound(all(a),(b)) #define upp(a,b) upper_bound(all(a),(b)) #define fill(i,n) memset(i,n,sizeof(i)) #define endl '\n' #define IOS() ios_base::sync_with_stdio(0);cin.tie(0) typedef long long ll; typedef pairpint; typedef vectorvint; typedef vector vvint; typedef vectorvpint; typedef pair P1; typedef pair P2; typedef pair PP; static const ll maxLL = (ll)1 << 62; const ll MOD=1000000007; const ll INF=1e18; int N,a[101],b[101]; int from[101010],to[101010]; signed main() { IOS(); cin>>N; rep(i,0,101010)from[i]=INF; from[0]=0; rep(i,0,N){ cin>>a[i]>>b[i]; rep(j,0,101010)to[j]=INF; rep(j,0,101010){ chmin(to[j+a[i]],from[j]); chmin(to[j],from[j]+b[i]); } swap(from,to); } int minans=INF; rep(i,0,101010)chmin(minans,max(i,from[i])); cout<