https://www.acmicpc.net/problem/13904
1️⃣ 과제 점수가 높은 과제부터 고려를 시작
2️⃣ 최대한 늦게 늦게 끝낼 수 있는 과제를 최대한 늦은 날짜에 끝내도록 한다. (날짜마다 수행한 과제는 scores배열에 저장)
if __name__ == '__main__':
    N = int(input())
    assign_list = []
    ans = 0
    scores = [0] * 1000
    for _ in range(N):
        d, w = map(int, input().split())
        assign_list.append([d,w])
    assign_list = sorted(assign_list, key = lambda x: (-x[1], x[0]))
    for info in assign_list:
        temp_d, temp_w = info
        temp_d -= 1
        for i in range(temp_d, -1,-1):
            # 과제 수행 할 날짜가 있는 경우
            if scores[i] == 0:
                scores[i] += temp_w
                ans += temp_w
                break
    print(ans)