수강신청

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

요약
각 과목의 학점이 0에서 5, 행복도가 -100에서 100일 때, 총 학점이 n_lo 이상 n_hi 이하가 되도록 과목을 골라 행복도의 합을 최대로 만든다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

이번 학기 지스트에는 총 mm개의 과목이 개설되며, 청응이는 이번 학기에 n_lon\_\text{lo}학점 이상, n_hin\_\text{hi}학점 이하를 듣고자 한다. 청응이는 개설 교과목 목록을 보며 모든 강의에 대해 행복도를 매겼고, 이번 학기의 행복도는 수강하는 모든 과목의 행복도의 합으로 정의한다. 시간표는 고려할 필요가 없다. 청응이가 이번 학기 가질 수 있는 최대 행복도를 구하는 프로그램을 작성하시오.

입력

첫 줄에는 최소와 최대 수강 학점 n_lon\_\text{lo}, n_hin\_\text{hi}이 공백으로 구분되어 주어진다. 학점은 0≤n_lo≤n_hi≤200,0000\leq n\_\text{lo}\leq n\_\text{hi}\leq 200,000을 만족한다. 둘째 줄에는 이번학기 개설 교과목의 수 mm이 주어진다. 1≤m≤200,0001\leq m\leq 200,000을 만족한다. 셋째 줄부터 (m+2)(m+2)번째 줄까지 각 줄마다 개설 과목에 대한 정보가 다음과 같이 주어진다. (i+2)(i+2)번째 줄에 과목 ii의 학점 g_ig\_i와 행복도 s_is\_i가 공백으로 구분되어 주어지며, 학점은 0≤g_i≤50\leq g\_i\leq 5, 행복도는 −100≤s_i≤100-100\leq s\_i\leq 100를 만족한다. 학점 요건을 충족하는 과목들의 조합이 존재하는 경우만 주어진다.

출력

이번 학기 얻을 수 있는 최대 행복도를 출력한다.

예제2

  1. 예제 1

    입력
    2 2
    4
    0 2
    1 1
    1 3
    1 -1
    예상 출력
    6
  2. 예제 2

    입력
    3 5
    8
    0 2
    1 2
    2 -2
    0 -8
    1 0
    3 -5
    1 -3
    0 -1
    예상 출력
    2