훈련

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

요약
N개의 훈련 상황마다 훈련을 하나씩 골라 총 시간이 M을 넘지 않으면서 최대가 되도록 하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

작전과장 승서는 부대의 24-1분기 훈련 계획을 구성하여야 한다. 이를 위해 승서는 훈련 계획에 포함할 훈련들을 선정해야 한다.

훈련은 NN가지의 훈련 상황으로 분류되어 있으며, ii번째 훈련 상황은 d_id\_i개의 훈련으로 이루어져 있다. ii번째 훈련 상황의 jj번째 훈련에 소요되는 시간은 t_ijt\_{ij}이다.

승서는 모든 상황에 대해 완벽한 대비를 하고 싶기 때문에 각 훈련 상황에서 적어도 하나의 훈련을 골라 훈련 계획에 넣으려고 한다. 또한, 훈련 계획에 포함된 훈련들의 시간 총합은 MM시간을 초과할 수 없으며 각 훈련은 한 번만 진행할 수 있다.

완벽한 전투대비태세 유지를 위해, 승서는 위 조건 아래에서 훈련 시간의 총합이 최대가 되도록 훈련 계획을 구성하고자 한다. 조건을 만족하는 최대 훈련 시간을 구해 국군 장병들의 완벽한 전투대비태세 유지를 도와주자.

입력

첫 번째 줄에 훈련 상황의 가짓수 NN, 최대 훈련 시간 MM이 공백으로 구분되어 주어진다.

두 번째 줄에 각 훈련 상황에 속한 훈련의 개수를 의미하는 NN개의 정수 d_1,⋯ ,d_Nd\_1, \cdots, d\_N이 공백으로 구분되어 주어진다.

이후 NN개의 줄에 걸쳐 i+2i+2번째 줄에 ii번째 훈련 상황에 속한 훈련의 소요 시간을 나타내는 d_id\_i개의 정수 t_ijt\_{ij}가 공백으로 구분되어 주어진다.

출력

조건을 만족하는 최대 훈련 시간을 구하여라.

만약 각 훈련 상황에서 적어도 하나의 훈련을 골라 훈련 계획에 넣는 것이 불가능하다면 -1을 출력한다.

제한

  • 1≤N≤1,0001 \le N \le 1\\,000
  • 1≤M≤10,0001 \le M \le 10\\,000
  • 1≤d_i≤1,0001 \le d\_i \le 1\\,000; ∑_i=1Nd_i≤1,000\sum\limits\_{i=1}^N d\_i \le 1\\,000
  • 1≤t_ij≤1,0001 \le t\_{ij} \le 1\\,000
  • 모든 입력은 정수이다.

예제2

  1. 예제 1

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

    입력
    5 24
    5 2 4 1 3
    23 7 11 3 2
    8 10
    5 17 20 9
    13
    1 24 3
    
    예상 출력
    -1