출근하기 (작은 입력)
시간 제한5초메모리 제한512 MB
모든 직원이 최소 차량으로 마을 T에 도착하도록 운전자를 배정하고, 각 마을에서 출발하는 차량 수를 출력한다.
문제
어떤 회사의 사무실은 번 도시에 있고, 직원은 명이다. 이 지역에는 도시가 개 있고 직원은 저마다 그중 한 도시에 산다.
직원 중 일부는 운전을 한다. 직원마다 정수 가 주어진다. 가 이면 면허가 없어 운전을 하지 못한다. 가 이상이면 그 직원이 모는 차에 운전자를 포함해 명까지 탄다. 그래서 가 이면 운전자 자신만 태우고 출근한다.
직원이 도시 사이를 오가는 방법은 직원의 차를 타는 것뿐이고, 같은 도시에 사는 직원의 차에만 탈 수 있다. 번 도시에 사는 직원은 이미 사무실이 있는 도시에 있으므로 차가 필요 없다.
모든 직원이 번 도시에 도착할 수 있는지 판정한다. 도착할 수 있으면 도로를 달리는 차가 가장 적어지도록 운전자를 정하고, 도시마다 출발하는 차가 몇 대인지 구한다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스는 다음과 같이 주어진다.
- 첫 줄에 도시의 수 과 사무실이 있는 도시 번호 가 주어진다.
- 다음 줄에 직원 수 가 주어진다.
- 이어지는 개 줄에 직원 한 명의 정보가 주어진다. 각 줄에는 그 직원이 사는 도시 번호 와 그 직원이 모는 차의 정원 가 주어진다.
, , , , , 이다.
출력
테스트 케이스마다 입력에 주어진 순서대로 한 줄씩 출력한다. 각 줄은 Case #X: 로 시작하고, X는 부터 세는 테스트 케이스 번호다. 그 뒤에 다음 중 하나를 출력한다.
- 운전자가 모자라 모든 직원이 사무실에 도착하지 못하면
IMPOSSIBLE - 도착할 수 있으면 차의 총수가 최소일 때 번 도시부터 번 도시까지 각 도시에서 출발하는 차의 수를 공백 하나로 구분해 출력한다. 번 도시의 값은 항상 이다.