기구 회수

고도마다 다른 바람을 타는 풍선을 옮기는 데 공유 에너지를 나눠 모든 풍선이 원점에 모이는 시각을 앞당깁니다.

어려움8이분 탐색동적 계획법아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

G사는 하늘에 기구를 여러 개 띄워 두었다. 정비를 하려면 기구를 회수해야 하는데, 회수 지점은 가로 좌표 00에 서 있는 회사 탑이다. ii번 기구는 가로 좌표 PiP_i, 높이 HiH_i에 떠 있다.

기술진은 무선 신호를 보내 기구가 모래주머니를 버리거나 공기를 빼도록 해서 기구를 올리고 내린다. 가로 방향으로는 기구를 직접 움직이지 못하고, 그 높이에 부는 바람에만 의존한다.

기구가 머무를 수 있는 높이는 MM개이고 00번부터 M1M-1번까지 번호가 붙어 있다. 높이 jj에 부는 바람의 속도는 VjV_j이다. VjV_j가 양수면 바람이 왼쪽에서 오른쪽으로 불고, 음수면 오른쪽에서 왼쪽으로 분다. 좌표 PP에 있는 기구가 속도 VV인 높이에 계속 머무르면 시간 tt가 흐른 뒤 좌표는 P+tVP + tV가 된다. 시간은 연속으로 흐르므로 tt는 실수일 수 있다. 기구의 좌표가 00이 되는 순간 그 기구는 바로 회수된다.

기구 하나를 높이 aa에서 높이 bb로 옮기는 데는 에너지 ab|a - b|가 든다. 높이를 바꾸는 데 시간은 들지 않고, 원하는 시각에 몇 번이든 바꿀 수 있다. 쓸 수 있는 에너지는 기구 전체를 통틀어 QQ이며, 전부 쓰지 않아도 된다.

에너지를 가장 잘 써서 모든 기구를 회수할 때 걸리는 시간을 구하라. 시간은 정수 단위로 센다. 즉 모든 기구가 회수되는 가장 이른 시각보다 크거나 같은 정수 중 가장 작은 값이 답이다. 마지막 기구가 시각 1.51.5에 회수되면 답은 22이다.

입력

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

각 테스트 케이스의 첫 줄에는 기구의 수 NN, 높이의 개수 MM, 쓸 수 있는 에너지 QQ가 공백으로 구분되어 주어진다. 둘째 줄에는 MM개의 정수가 주어지며, 그중 jj번째 값(00부터 센다)이 높이 jj의 바람 속도 VjV_j이다. 이어지는 NN개의 줄에는 각각 ii번 기구의 좌표 PiP_i와 높이 HiH_i가 주어진다.

제한

  • 1T251 \le T \le 25
  • 1N1001 \le N \le 100
  • 1M10001 \le M \le 1000
  • 100Vj100-100 \le V_j \le 100
  • 1Q100001 \le Q \le 10000
  • 0Hi<M0 \le H_i < M
  • 10000Pi10000-10000 \le P_i \le 10000

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. xx는 테스트 케이스 번호이고 11부터 시작한다. yy는 모든 기구를 회수하는 데 걸리는 시간의 최솟값이다. 주어진 에너지로 모든 기구를 회수할 수 없다면 yy 자리에 IMPOSSIBLE을 출력한다.

설명

첫 번째 예제의 첫 테스트 케이스에는 기구가 두 개 있고 에너지는 11이다. 좌표 33, 높이 33에 있는 기구를 에너지 11을 써서 높이 22로 내리는 것이 가장 좋다. 높이 22의 바람 속도가 2-2이므로 이 기구는 시각 1.51.5에 탑에 닿는다. 좌표 2-2, 높이 11에 있는 기구는 속도 11인 바람을 타고 시각 22에 탑에 닿는다. 두 기구가 모두 회수되는 가장 이른 시각이 22이므로 답은 22이다.