ACM 연립
시간 제한1초메모리 제한128 MB
의석 부족분을 메울 정당을 골라 요구 하나씩을 들어주고 ACM에 남는 이사회 표를 최대로 합니다.
- 난이도
보통10점 중 7점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
이번 총선에서 과반 의석을 얻은 정당이 하나도 없다. 그래서 운영위원회를 채우려면 여러 정당이 연립해야 한다. 운영위원회는 위원장 1명, 부위원장 2명, 간사 6명으로 이루어진다. 표결 방식은 조금 특이해서 위원장은 25표, 부위원장은 한 명당 8표, 간사는 한 명당 1표를 행사한다.
ACM당은 연립을 주도하려 하지만 과반까지 석이 모자란다. 다른 정당의 의석 수는 모두 알고 있다. 각 정당은 연립에 참여하는 조건으로 운영위원회 자리를 형태로 요구한다. 는 위원장, 는 부위원장, 는 간사 자리의 수이고, 그 정당에서 뽑히기를 바라는 인원이다. 예를 들어 BDN당의 요구가 이면 위원장 한 명과 부위원장 한 명, 간사 두 명을 BDN당에서 뽑아야 한다. 한 정당이 요구를 여러 개 제시하기도 한다. 이때는 그중 하나만 들어주면 연립에 참여한다.
연립에 참여한 정당의 의석 합이 이상이어야 ACM당의 모자란 의석이 채워진다. 요구를 모두 배정하고 남은 자리는 ACM당이 가져간다. ACM당이 가져가는 자리의 표 합계를 최대로 만들어라.
입력
입력은 여러 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫 줄에는 정수 과 이 주어진다. 은 ACM당을 뺀 나머지 정당의 수이고 (), 은 ACM당에 모자란 의석 수다. 이어지는 개 줄에는 각 정당의 정보가 한 줄씩 주어진다. 각 줄은 그 정당의 의석 수로 시작하고, 콜론과 공백이 온 다음 요구 목록이 나온다. 요구 하나는 꼴이며 , , 이다. 요구가 여러 개면 or로 구분하고, 목록 끝에는 세미콜론을 붙인다.
입력의 마지막 줄은 0 0이다. 모든 테스트 케이스에는 석을 채우는 연립이 적어도 하나 있다.
출력
각 테스트 케이스마다 한 줄에 정수 세 개를 출력한다. 표 합계를 최대로 만드는 연립에서 ACM당이 가지는 위원장, 부위원장, 간사의 수다.
위원장 한 명의 표가 부위원장 두 명과 간사 여섯 명을 합친 표보다 많고, 부위원장 한 명의 표가 간사 여섯 명을 합친 표보다 많으므로 표 합계를 최대로 만드는 배분은 하나뿐이다.