아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

롤러코스터

면접 대비

시간 제한1초메모리 제한128 MB

요약
롤러코스터의 각 구간에서 눈을 뜨면 재미와 어지러움이 늘고 눈을 감으면 어지러움이 K만큼 줄어든다. 어지러움이 항상 L 이하가 되도록 얻을 수 있는 최대 재미를 구한다.
난이도

보통10점 중 6점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

베시(Bessie)가 여행을 떠나 롤러코스터를 타고 있습니다! 베시는 롤러코스터 타는 것을 정말 좋아하지만, 안타깝게도 자주 어지러움을 느낍니다.

이 롤러코스터는 여러 개의 서로 다른 구간으로 이루어져 있고, 베시는 이 구간들을 순서대로 지나갑니다. 출발할 때 베시의 어지러움 수치와 재미 수치는 모두 0입니다. 각 구간에서 베시는 눈을 뜨거나 감을 수 있으며, 한 구간 동안에는 그 상태를 계속 유지해야 합니다.

  • 어떤 구간에서 눈을 뜨면, 그 구간의 재미 값만큼 총 재미가 늘어나고 그 구간의 어지러움 값만큼 어지러움이 늘어납니다.
  • 어떤 구간에서 눈을 감으면, 총 재미는 변하지 않지만 어지러움이 롤러코스터 전체에 걸쳐 정해진 일정한 값만큼 줄어듭니다. 단, 어지러움 수치는 절대 0 미만이 될 수 없습니다(0 미만으로 내려가게 되면 0이 됩니다).

만약 어느 순간이라도 베시의 어지러움이 정해진 한계를 넘으면 베시는 멀미를 하게 됩니다. 베시가 멀미하지 않으면서 얻을 수 있는 최대 재미를 구하세요.

입력

입력에는 여러 개의 테스트 케이스가 있습니다. 각 테스트 케이스는 세 정수가 있는 줄로 시작합니다.

N K L

여기서 NN (1≤N≤1,0001 \le N \le 1{,}000)은 이 롤러코스터의 구간 수, KK (1≤K≤5001 \le K \le 500)는 어떤 구간에서 눈을 감았을 때 어지러움이 줄어드는 양, LL (1≤L≤300,0001 \le L \le 300{,}000)은 베시가 견딜 수 있는 어지러움 한계입니다. 어지러움이 LL보다 커지는 순간 베시는 멀미를 합니다.

다음 NN개의 줄은 각각 한 구간을 설명하며 두 정수를 담고 있습니다.

F D

여기서 FF (1≤F≤201 \le F \le 20)는 그 구간에서 눈을 떴을 때 늘어나는 재미, DD (1≤D≤5001 \le D \le 500)는 그 구간에서 눈을 떴을 때 늘어나는 어지러움입니다. 구간은 타는 순서대로 주어집니다. 입력은 세 개의 0이 있는 줄로 끝납니다.

출력

각 테스트 케이스마다, 베시가 어지러움 한계를 넘지 않으면서 얻을 수 있는 최대 재미를 정수 하나로 출력하세요. 각 정수는 공백 없이 한 줄에 출력하고, 답 사이에 빈 줄을 넣지 마세요.

예제1

  1. 예제 1

    입력
    3 1 2
    2 1
    3 1
    5 2
    10 5 1
    20 2
    12 4
    3 3
    10 6
    20 3
    19 9
    19 7
    1 500
    15 5
    4 2
    0 0 0
    
    예상 출력
    7
    0