import math
def find(u, par):
if par[u] != u:
par[u] = find(par[u], par)
return par[u]
def union(u, v, par, size):
u_root = find(u, par)
v_root = find(v, par)
if u_root == v_root:
return
if size[u_root] < size[v_root]:
par[u_root] = v_root
size[v_root] += size[u_root]
else:
par[v_root] = u_root
size[u_root] += size[v_root]
def ip():
return map(int,input().split())
T=1
# T=int(input())
for __ in range(T):
n=int(input())
lst=[]
for _ in range(n):
a,b=ip()
lst.append([b,a])
lst.sort()
i=0
j=n-1
ct=0
res=0
while i<n:
b1,a1=lst[i]
b2,a2=lst[j]
if a1==0:
i+=1
continue
if ct<lst[i][0]:
while i<=j and ct<lst[i][0]:
diff=min(lst[i][0]-ct,lst[j][1])
ct+=diff
lst[j][1]-=diff
res+=diff*2
if lst[j][1]==0:
j-=1
if ct>=lst[i][0]:
ct+=lst[i][1]
res+=lst[i][1]
else:
ct+=lst[i][1]
res+=lst[i][1]*2
# print(lst,ct,res)
i+=1
print(res)
aW1wb3J0IG1hdGgKZGVmIGZpbmQodSwgcGFyKToKCiAgICBpZiBwYXJbdV0gIT0gdToKICAgICAgICBwYXJbdV0gPSBmaW5kKHBhclt1XSwgcGFyKQogICAgcmV0dXJuIHBhclt1XQoKZGVmIHVuaW9uKHUsIHYsIHBhciwgc2l6ZSk6CiAgICB1X3Jvb3QgPSBmaW5kKHUsIHBhcikKICAgIHZfcm9vdCA9IGZpbmQodiwgcGFyKQoKICAgIGlmIHVfcm9vdCA9PSB2X3Jvb3Q6CiAgICAgICAgcmV0dXJuIAoKCiAgICBpZiBzaXplW3Vfcm9vdF0gPCBzaXplW3Zfcm9vdF06CiAgICAgICAgcGFyW3Vfcm9vdF0gPSB2X3Jvb3QKICAgICAgICBzaXplW3Zfcm9vdF0gKz0gc2l6ZVt1X3Jvb3RdCiAgICBlbHNlOgogICAgICAgIHBhclt2X3Jvb3RdID0gdV9yb290CiAgICAgICAgc2l6ZVt1X3Jvb3RdICs9IHNpemVbdl9yb290XQoKZGVmIGlwKCk6CiAgICByZXR1cm4gbWFwKGludCxpbnB1dCgpLnNwbGl0KCkpCgoKCgpUPTEKIyBUPWludChpbnB1dCgpKQpmb3IgX18gaW4gcmFuZ2UoVCk6CiAgICBuPWludChpbnB1dCgpKQogICAgbHN0PVtdCiAgICBmb3IgXyBpbiByYW5nZShuKToKICAgICAgIGEsYj1pcCgpCiAgICAgICBsc3QuYXBwZW5kKFtiLGFdKQogICAgCiAgICBsc3Quc29ydCgpCgogICAgaT0wCiAgICBqPW4tMQoKICAgIGN0PTAKICAgIHJlcz0wCiAgICB3aGlsZSBpPG46CiAgICAgICAgYjEsYTE9bHN0W2ldCiAgICAgICAgYjIsYTI9bHN0W2pdCiAgICAgICAgaWYgYTE9PTA6CiAgICAgICAgICAgIGkrPTEKICAgICAgICAgICAgY29udGludWUKICAgICAgICBpZiBjdDxsc3RbaV1bMF06CiAgICAgICAgICAgIHdoaWxlIGk8PWogYW5kIGN0PGxzdFtpXVswXToKICAgICAgICAgICAgICAgIGRpZmY9bWluKGxzdFtpXVswXS1jdCxsc3Rbal1bMV0pCiAgICAgICAgICAgICAgICBjdCs9ZGlmZgogICAgICAgICAgICAgICAgbHN0W2pdWzFdLT1kaWZmCiAgICAgICAgICAgICAgICByZXMrPWRpZmYqMgogICAgICAgICAgICAgICAgaWYgbHN0W2pdWzFdPT0wOgogICAgICAgICAgICAgICAgICAgIGotPTEKICAgICAgICBpZiBjdD49bHN0W2ldWzBdOgogICAgICAgICAgICBjdCs9bHN0W2ldWzFdCiAgICAgICAgICAgIHJlcys9bHN0W2ldWzFdCiAgICAgICAgICAgIAogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGN0Kz1sc3RbaV1bMV0KICAgICAgICAgICAgcmVzKz1sc3RbaV1bMV0qMgogICAgICAgICMgcHJpbnQobHN0LGN0LHJlcykKICAgICAgICBpKz0xCiAgICAKICAgIHByaW50KHJlcykKICAgICAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICA=