만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

퇴사 전 상담 일정

면접 대비

시간 제한2초메모리 제한512 MB

요약
1일차부터 N일차까지 각 날짜에 상담 기간 T_i와 수익 P_i가 주어질 때, N+1일 전까지 끝낼 수 있는 상담을 골라 최대 수익을 구한다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열, 그리디, 구현
정답자
아직 제출이 없습니다

문제

상담원으로 일하는 민준이는 퇴사를 준비한다.

오늘부터 N+1일째 되는 날 퇴사하기 위해, 남은 N일 동안 최대한 많은 상담을 하려고 한다.

민준이는 비서에게 상담을 최대한 많이 잡아 달라고 부탁했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아 두었다.

각 상담은 상담을 완료하는 데 걸리는 기간 TiT_i와 상담을 마쳤을 때 받는 금액 PiP_i로 이루어진다.

N = 7인 경우의 상담 일정표를 보자.

1일2일3일4일5일6일7일
TiT_i3511242
PiP_i102010201540200

1일에 잡힌 상담은 3일이 걸리고, 상담을 마쳤을 때 받는 금액은 10이다. 5일에 잡힌 상담은 2일이 걸리고, 받는 금액은 15이다.

상담 하나에 필요한 기간이 1일보다 길 수 있어서 모든 상담을 할 수는 없다. 예를 들어 1일에 상담을 시작하면 2일과 3일에 있는 상담은 하지 못한다. 2일에 있는 상담을 시작하면 3일, 4일, 5일, 6일에 잡힌 상담을 하지 못한다.

또한 N+1일째에는 회사에 없으므로 6일과 7일에 있는 상담도 하지 못한다.

퇴사 전에 얻을 수 있는 최대 이익은 1일, 4일, 5일에 있는 상담을 하는 것이고, 이때의 이익은 10+20+15=45이다.

상담을 적절히 골랐을 때 민준이가 얻을 수 있는 최대 수익을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N (1≤N≤15000001 \le N \le 1500000)이 주어진다.

둘째 줄부터 N개의 줄에 TiT_i와 PiP_i가 공백으로 구분되어 주어지며, 1일부터 N일까지 순서대로 주어진다. (1≤Ti≤501 \le T_i \le 50, 1≤Pi≤10001 \le P_i \le 1000)

출력

첫째 줄에 민준이가 얻을 수 있는 최대 이익을 출력한다.

예제5

  1. 예제 1

    입력
    7
    3 10
    5 20
    1 10
    1 20
    2 15
    4 40
    2 200
    
    예상 출력
    45
    
  2. 예제 2

    입력
    10
    1 1
    1 2
    1 3
    1 4
    1 5
    1 6
    1 7
    1 8
    1 9
    1 10
    
    예상 출력
    55
    
  3. 예제 3

    입력
    10
    5 10
    5 9
    5 8
    5 7
    5 6
    5 10
    5 9
    5 8
    5 7
    5 6
    
    예상 출력
    20
    
  4. 예제 4

    입력
    10
    5 50
    4 40
    3 30
    2 20
    1 10
    1 10
    2 20
    3 30
    4 40
    5 50
    
    예상 출력
    90
    
  5. 예제 5

    입력
    1
    1 1000
    
    예상 출력
    1000