첫 번째 아이디어는 왼쪽부터 가장 큰 값을 집어넣고 temp를 가지고 더 큰 값이 들어오면 temp를 바꾸는 걸로 하려고 했지만 커졌다가 작아지는 애로사항이 있었다. 그렇기 때문에 가장 큰 값을 기준으로 index를 삼아서 좌 우를 나눠서 계산하는 방법을 통해 구하였다.
n = int(input())
arr = []
maxH = 1
maxL = 0
for _ in range(n):
L, H = map(int, input().split())
arr.append((L, H))
if L > maxL :
maxL = L
if H > maxH:
maxH = H
maxIndex = L
check = [0] * (maxL + 1)
for l, h in arr:
check[l] = h
temp = 0
ans = 0
for i in range(maxIndex + 1): #앞에서 부터 maxIndex까지
if check[i] > temp:
temp = check[i]
ans += temp
temp = 0
for i in range(maxL, maxIndex, -1): # 뒤에서부터 maxIndex 바로 뒤까지
if check[i] > temp:
temp = check[i]
ans += temp
print(ans)