대형 국책 사업은 보통 필요한 전문성과 투자 규모가 서로 다른 여러 모듈로 나뉜다. 그래서 한 회사가 사업 전체를 혼자 끝내기는 어렵고, 두 회사 이상이 전문 인력과 자원을 나눠 맡는 합작 방식이 흔하다. 다만 합작 이익을 최대로 만드는 일은 따져야 할 조건이 많아 간단하지 않다. 프로그램이 필요한 지점이 여기다.
A사와 B사가 D일 안에 끝내야 하는 사업을 함께 맡았다. 사업은 M개의 모듈 L1,L2,…,LM으로 이루어진다. L1을 가장 먼저 끝내야 하고, i≥1인 모듈 Li를 끝내야 Li+1을 시작할 수 있다. Li가 끝난 다음 날 바로 Li+1을 시작하므로, 사업 전체에 걸리는 기간은 각 모듈에 걸리는 일수의 합이다. 한 모듈은 A사와 B사 중 한 곳만 맡는다.
두 회사의 전문 분야가 다르므로, 어떤 모듈은 A사가 짧은 기간과 적은 비용으로 끝내지만 B사는 훨씬 오래 걸리고 비용도 많이 드는 경우가 있고 그 반대도 있다. 한 회사가 특정 모듈을 아예 맡지 못하는 경우도 있다. 그러면 다른 회사가 그 모듈을 맡아야 사업을 끝낼 수 있다.
두 회사가 투자할 수 있는 금액에는 한도가 있다. A사가 부담하는 비용의 합은 KA 이하, B사가 부담하는 비용의 합은 KB 이하여야 한다. 정부가 지급하는 사업비가 R일 때 이익은 R에서 두 회사가 쓴 비용의 합을 뺀 값이다. M개의 모듈을 모두 D일 안에 끝내면서 이익을 최대로 만드는 분담을 구하여라.
첫째 줄에 A사와 B사가 함께 맡은 사업의 수 T (T≤10)가 주어진다. 이어서 사업마다 다음 자료가 주어진다. 같은 줄에 있는 수는 공백 하나로 구분된다.
어떤 회사가 특정 모듈을 맡지 못하면 그 모듈의 일수와 비용이 모두 −1로 주어진다.
사업 1,2,…,T의 최대 이익을 순서대로 한 줄에 출력한다. 값은 공백 하나로 구분하고 줄 끝에는 줄바꿈을 넣는다.
두 회사 모두 맡지 못하는 모듈이 있거나 어떻게 분담해도 D일 안에 끝낼 수 없으면 그 사업의 값으로 −1을 출력한다. 이익이 남지 않는 경우, 즉 손실이거나 이익이 0인 경우에도 −1을 출력한다. 그 밖에는 최대 이익을 백만 바트 단위로 출력한다.