책들의 선행 제약이 주어진 DAG에서 각 책의 단축 일수를 정해 모든 책을 X일 안에 끝내야 할 때, 인쇄비와 단축비 합의 최솟값을 구한다.
어려움8동적 계획법그래프위상 정렬이분 탐색아직 제출이 없습니다시간 제한10초메모리 제한512 MB출판사가 책 N권을 X일 안에 모두 인쇄하려 한다. 책은 원래 여러 권을 동시에 찍을 수 있지만, 출판사가 일부 책에 순서 제약을 걸어 두었다. 어떤 시리즈의 2권은 1권이 출간되기 전에는 인쇄를 시작할 수 없는 식이다. 제약은 M개이고 각각 (u,v) 꼴로 주어진다. u번 책이 출간된 뒤에야 v번 책의 인쇄를 시작할 수 있다는 뜻이다.
i번 책을 찍는 데는 Ai일이 걸리고 인쇄 비용은 Ci다. 인쇄기에 자원을 더 넣으면 제작 기간을 Ri일 줄여 Ai−Ri일 만에 끝낼 수 있다. 단 Ai−Ri≥Bi를 지켜야 하고, 하루를 줄일 때마다 Di의 비용이 더 든다.
일정은 0일차부터 센다. i번 책을 Si일차에 시작하면 Si+(Ai−Ri)−1일차에 인쇄가 끝난다. 제약 (u,v)는 Sv≥Su+(Au−Ru)를 뜻하고, 모든 책은 Si+(Ai−Ri)≤X를 만족해야 한다.
총비용은 인쇄 비용의 합에 단축 비용의 합을 더한 ∑iCi+∑iDiRi다. N권을 모두 X일 안에 찍을 때의 최소 총비용을 구하라.
첫 줄에 테스트 케이스 수 T가 주어진다. 각 테스트 케이스는 다음 형식이다.
N X
A1 A2 ... AN
B1 B2 ... BN
C1 C2 ... CN
D1 D2 ... DN
M
u1 v1
...
uM vM
N의 분포는 이렇다. 테스트 케이스의 85%는 N≤30이고, 3개는 N=200이며, 나머지는 30≤N≤100이다.
각 테스트 케이스마다 한 줄씩 출력한다. 줄은 Case k: 로 시작하고, k는 1부터 시작하는 테스트 케이스 번호다. X일 안에 N권을 다 찍을 수 없으면 뒤에 Impossible을 붙이고, 찍을 수 있으면 최소 총비용을 붙인다.
아래 그림은 책 3권짜리 예다. 1번 책은 5일이 걸리고 단축할 수 없다. 2번 책과 3번 책은 각각 4일이 걸리고 2번이 끝나야 3번을 시작할 수 있다. 자원을 더 넣지 않으면 세 권을 모두 찍는 데 8일이 걸린다. 2번 책을 2일, 3번 책을 1일 줄이면 5일 만에 끝난다.
