만드는 중입니다

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

벼락치기

면접 대비

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

요약
각 장마다 공부 시간과 배점이 주어질 때, 총 공부 시간이 T를 넘지 않도록 장을 골라 얻을 수 있는 최대 점수를 구한다.
난이도

쉬움10점 중 3점

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

문제

ChAOS(Chung-ang Algorithm Organization and Study) 회장을 맡은 뒤로 일이 많아진 준석이는 시험 기간에도 일에 밀려 공부를 못 하다가 시험 전날을 맞았다. 다행히 교수님이 시험 전에 다음 두 가지를 공지했다.

  1. 여러 단원을 융합한 문제는 출제하지 않는다.
  2. 한 단원에서 한 문제를 출제한다. 단, 그 단원의 내용을 모두 알아야 풀 수 있는 문제를 낸다.

교수님은 이 힌트와 함께 단원별 배점도 적어 두었다. 어떤 단원의 문제를 맞히려면 그 단원의 예상 공부 시간만큼, 또는 그보다 더 오래 공부해야 한다고 하자. 각 단원은 공부하거나 공부하지 않거나 둘 중 하나이고, 부분 점수는 없다.

남은 시간 동안 공부해서 준석이가 얻을 수 있는 최대 점수를 구하라.

입력

첫째 줄에 이번 시험의 단원 개수 NN(1≤N≤1001 \le N \le 100)과 시험까지 공부할 수 있는 총 시간 TT(1≤T≤100001 \le T \le 10000)가 공백을 사이에 두고 주어진다.

둘째 줄부터 NN개 줄에 걸쳐 각 단원의 예상 공부 시간 KK(1≤K≤10001 \le K \le 1000)와 그 단원 문제의 배점 SS(1≤S≤10001 \le S \le 1000)가 공백을 사이에 두고 주어진다.

출력

첫째 줄에 준석이가 얻을 수 있는 최대 점수를 출력한다.

예제6

  1. 예제 1

    입력
    3 310
    50 40
    100 70
    200 150
    
    예상 출력
    220
    
  2. 예제 2

    입력
    1 1
    1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1 1
    1000 1
    
    예상 출력
    0
    
  4. 예제 4

    입력
    3 10
    6 10
    5 6
    5 6
    
    예상 출력
    12
    
  5. 예제 5

    입력
    3 10
    10 10
    6 7
    4 7
    
    예상 출력
    14
    
  6. 예제 6

    입력
    3 100
    30 1
    70 1
    100 10
    
    예상 출력
    10