겹치지 않는 데이트를 골라 남기되, 한 사람의 데이트를 모두 남겨야 만족도를 받을 때 얻을 수 있는 최대 총 만족도를 구한다.
보통7구간동적 계획법비트 연산그리디아직 제출이 없습니다시간 제한8초메모리 제한512 MB클레어는 하루에 약속을 여러 개 잡는다. 만나는 사람이 수십 명이라 어느 날 일정이 서로 겹쳐 버렸다.
약속 시간은 13:00부터 15:00까지처럼 시각으로 정해져 있고, 모든 약속은 같은 날 6:00과 22:00 사이에 있다. 한 사람과 약속을 여러 번 잡기도 한다. 예를 들어 애덤과는 10:00부터 12:00까지와 14:00부터 16:00까지, 밥과는 12:00부터 13:00까지와 18:00부터 20:00까지 약속이 있다고 하자. 네 약속은 시간이 서로 겹치지 않으므로 클레어는 넷을 모두 지킬 수 있다. 이동 시간, 화장하는 시간, 삼각관계에서 생기는 문제 따위는 생각하지 않는다. 한 약속이 끝나는 시각에 다음 약속이 시작되는 것은 겹치는 것이 아니다.
i번째 사람은 자기와 잡은 약속이 하나도 빠짐없이 지켜질 때만 만족도 Li를 준다. 약속을 하나라도 어기면 그 사람에게서 얻는 값은 0이다. 앞의 예에서 애덤의 만족도가 100, 밥의 만족도가 200이면 둘 다 지킬 수 있으므로 합은 300이다.
한 사람과 잡은 약속끼리 시간이 겹치는 경우도 있다. 그러면 그 약속을 전부 지키기가 불가능하므로 그 사람에게서 얻는 만족도는 0이다.
클레어가 지킬 약속을 골라서 얻을 수 있는 만족도 합의 최댓값을 구하라.
입력은 데이터셋 여러 개로 이루어진다. 각 데이터셋의 형식은 다음과 같다.
N
1번 사람
...
N번 사람
첫 줄에 사람 수 N (1≤N≤100)이 주어진다. 이어서 사람 N명의 정보가 차례로 주어지고, 한 사람의 정보는 다음 형식이다.
M L
S1 E1
...
SM EM
첫 줄에는 그 사람과 잡은 약속의 수 M (1≤M≤16)과 그 사람에게서 얻는 만족도 L (1≤L≤108)이 주어진다. 이어지는 M개의 줄에는 약속의 시작 시각 S와 끝 시각 E (6≤S<E≤22)가 주어진다. 입력값은 모두 정수다.
N 자리에 0이 적힌 줄이 나오면 입력이 끝난다. 그 줄은 데이터셋이 아니다.
각 데이터셋마다 클레어가 얻을 수 있는 만족도 합의 최댓값을 한 줄에 출력한다.