만드는 중입니다

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

업무 처리

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

요약
각 작업은 가능한 시작일 구간과 시작일별 소요 시간이 주어진다. 구간 안에 끝낼 수 있는 작업 수가 최대가 되도록 일부를 골라 순서를 정한다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 정렬
정답자
아직 제출이 없습니다

문제

영선이는 오늘도 일하고, 내일도 모레도 일한다.

영선이에게 업무 nn개가 할당됐다. 각 업무는 정해진 기간 안에서만 할 수 있고, 시작하는 날에 따라 걸리는 시간이 달라진다.

기간이 [a,b][a, b]인 업무를 dd일에 시작해서 TT일이 걸린다면 dd일부터 d+T−1d + T - 1일까지 일하고 d+T−1d + T - 1일에 끝난다. 따라서 a≤da \le d이고 d+T−1≤bd + T - 1 \le b일 때만 그 업무를 dd일에 시작할 수 있다.

예를 들어 기간이 [1,5][1, 5]인 업무가 있고, 걸리는 시간이 1일에 시작하면 4일, 2일에 시작하면 2일, 3일에 시작하면 3일, 4일에 시작하면 5일, 5일에 시작하면 2일이라고 하자. 4일이나 5일에 시작하면 5일을 넘겨서 기간 안에 끝낼 수 없다. 2일에 시작하면 3일에 끝나므로 가장 빨리 마칠 수 있다.

업무는 한 번에 하나씩 처리한다. 앞선 업무가 ee일에 끝났다면 다음 업무는 바로 그 ee일부터 시작할 수 있다.

모든 업무를 다 할 필요는 없다. 업무 정보가 주어질 때, 처리할 수 있는 업무의 최대 개수를 구하시오.

입력

첫째 줄에 업무의 개수 nn이 주어진다. (1≤n≤151 \le n \le 15)

다음 nn개의 줄에 업무 정보가 한 줄에 하나씩 주어진다. 각 줄에는 두 정수 aa와 bb가 먼저 주어지고, 이어서 정수 b−a+1b - a + 1개가 주어진다. 이 정수들은 그 업무를 aa일, a+1a + 1일, …\dots, bb일에 시작할 때 걸리는 시간 TiT_i를 차례대로 나타낸다. (1≤a≤b≤1001 \le a \le b \le 100, 1≤Ti≤1001 \le T_i \le 100)

출력

처리할 수 있는 업무의 최대 개수를 첫째 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    1 5 4 2 3 5 2
    3 4 2 2
    2 3 2 3
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1
    5 5 2
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3
    1 3 3 2 1
    3 5 3 2 1
    5 7 3 2 1
    
    예상 출력
    3