기타마사의 반격
시간 제한2초메모리 제한256 MB
키타마사는 상점별 비용을 내고 열쇠 가격을 올려 아키바의 구매 비용과의 차이를 최대화합니다. 답은 최소 컷 값이며, 무한대이면 -1입니다.
문제
상자 개(1번부터 번까지), 열쇠 개(1번부터 번까지), 상점 곳(1번부터 번까지)이 있다. 열쇠 는 상자 중 하나를 여는 데 쓸 수 있다. 열쇠는 한 번 상자를 열면 사라지므로, 열쇠 하나로 여러 상자를 열 수는 없다. 열쇠 는 상점 에서 달러에 팔린다. 아키바는 열쇠를 몇 개 사서 모든 상자를 열려고 한다. 같은 열쇠는 두 번 이상 살 수 없다.
키타마사는 아키바를 방해하려고 한다. 아키바가 살 열쇠를 정하기 전에, 키타마사는 일부 열쇠의 가격을 바꿀 수 있다. 키타마사가 달러를 내면 상점 에서 파는 모든 열쇠의 가격이 1달러 오른다. 각 상점마다 이 작업을 음이 아닌 정수 번 반복할 수 있다. 예를 들어 달러를 내면 상점 의 모든 열쇠 가격이 2달러 오른다. 일 때 1달러를 내고 가격을 0.5달러 올리는 것은 불가능하다.
아키바는 (아키바의 지출) − (키타마사의 지출) 값을 최소화하려고 하고, 키타마사는 이 값을 최대화하려고 한다. 두 사람이 최적으로 행동할 때의 값을 구하라. 값이 무한히 커질 수 있으면 -1을 출력한다. 키타마사가 아무것도 하지 않으면 아키바가 모든 상자를 열 수 있다는 것이 보장된다.
입력
첫 줄에 세 정수 , , 가 주어진다(, , ). 이어서 개의 줄에 열쇠 정보가 주어진다. 각 줄은 열쇠의 가격 , 판매 상점 , 열 수 있는 상자 수 세 정수로 시작하고, 그 뒤에 상자 번호 개가 주어진다(, , , , 이면 ). 마지막으로 개의 줄에 정수 가 하나씩 주어진다().
출력
답을 나타내는 정수 하나를 출력한다.