#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
struct  node
{
	ll a,b;
	/* data */
}arr[N];
bool cmp(node a,node b){
	return a.b>b.b;
}
int main()
{	
	int n;
	ll Csum=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld%lld",&arr[i].a,&arr[i].b);
		Csum+=arr[i].a;
	}
	sort(arr+1,arr+n+1,cmp);
	ll  l=1,r=n,ans=0,sum=0;
	while(sum^Csum){
		if(sum>=arr[r].b){
			ans+=arr[r].a;
			sum+=arr[r].a;
			r--;
		}
		else if(sum+arr[l].a>=arr[r].b){
			ans+=arr[r].b-sum<<1;
			arr[l].a-=arr[r].b-sum;
			sum=arr[r].b;
		}
		else {
			ans+=arr[l].a<<1;
			sum+=arr[l].a;
			l++;
		}
	}
	cout<<ans<<endl;

	return 0;
}