아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

출근하기 (작은 입력)

시간 제한5초메모리 제한512 MB

요약
모든 직원이 최소 차량으로 마을 T에 도착하도록 운전자를 배정하고, 각 마을에서 출발하는 차량 수를 출력한다.
난이도

보통10점 중 5점

유형
그리디, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

어떤 회사의 사무실은 TT번 도시에 있고, 직원은 EE명이다. 이 지역에는 도시가 NN개 있고 직원은 저마다 그중 한 도시에 산다.

직원 중 일부는 운전을 한다. 직원마다 정수 PP가 주어진다. PP가 00이면 면허가 없어 운전을 하지 못한다. PP가 11 이상이면 그 직원이 모는 차에 운전자를 포함해 PP명까지 탄다. 그래서 PP가 11이면 운전자 자신만 태우고 출근한다.

직원이 도시 사이를 오가는 방법은 직원의 차를 타는 것뿐이고, 같은 도시에 사는 직원의 차에만 탈 수 있다. TT번 도시에 사는 직원은 이미 사무실이 있는 도시에 있으므로 차가 필요 없다.

모든 직원이 TT번 도시에 도착할 수 있는지 판정한다. 도착할 수 있으면 도로를 달리는 차가 가장 적어지도록 운전자를 정하고, 도시마다 출발하는 차가 몇 대인지 구한다.

입력

첫 줄에 테스트 케이스의 수 CC가 주어진다.

각 테스트 케이스는 다음과 같이 주어진다.

  • 첫 줄에 도시의 수 NN과 사무실이 있는 도시 번호 TT가 주어진다.
  • 다음 줄에 직원 수 EE가 주어진다.
  • 이어지는 EE개 줄에 직원 한 명의 정보가 주어진다. 각 줄에는 그 직원이 사는 도시 번호 HH와 그 직원이 모는 차의 정원 PP가 주어진다.

1≤C≤501 \le C \le 50, 1≤N≤101 \le N \le 10, 1≤T≤N1 \le T \le N, 1≤E≤1001 \le E \le 100, 1≤H≤N1 \le H \le N, 0≤P≤60 \le P \le 6이다.

출력

테스트 케이스마다 입력에 주어진 순서대로 한 줄씩 출력한다. 각 줄은 Case #X: 로 시작하고, X는 11부터 세는 테스트 케이스 번호다. 그 뒤에 다음 중 하나를 출력한다.

  • 운전자가 모자라 모든 직원이 사무실에 도착하지 못하면 IMPOSSIBLE
  • 도착할 수 있으면 차의 총수가 최소일 때 11번 도시부터 NN번 도시까지 각 도시에서 출발하는 차의 수를 공백 하나로 구분해 출력한다. TT번 도시의 값은 항상 00이다.

예제2

  1. 예제 1

    입력
    3
    5 1
    3
    1 0
    1 0
    1 0
    5 1
    3
    2 4
    2 0
    3 0
    5 3
    5
    1 2
    1 0
    4 2
    4 4
    4 0
    
    예상 출력
    Case #1: 0 0 0 0 0
    Case #2: IMPOSSIBLE
    Case #3: 1 0 0 1 0
    
  2. 예제 2

    입력
    2
    2 1
    2
    2 1
    2 0
    2 1
    2
    2 1
    2 1
    
    예상 출력
    Case #1: IMPOSSIBLE
    Case #2: 0 2