고도마다 다른 바람을 타는 풍선을 옮기는 데 공유 에너지를 나눠 모든 풍선이 원점에 모이는 시각을 앞당깁니다.
어려움8이분 탐색동적 계획법아직 제출이 없습니다시간 제한5초메모리 제한512 MBG사는 하늘에 기구를 여러 개 띄워 두었다. 정비를 하려면 기구를 회수해야 하는데, 회수 지점은 가로 좌표 0에 서 있는 회사 탑이다. i번 기구는 가로 좌표 Pi, 높이 Hi에 떠 있다.
기술진은 무선 신호를 보내 기구가 모래주머니를 버리거나 공기를 빼도록 해서 기구를 올리고 내린다. 가로 방향으로는 기구를 직접 움직이지 못하고, 그 높이에 부는 바람에만 의존한다.
기구가 머무를 수 있는 높이는 M개이고 0번부터 M−1번까지 번호가 붙어 있다. 높이 j에 부는 바람의 속도는 Vj이다. Vj가 양수면 바람이 왼쪽에서 오른쪽으로 불고, 음수면 오른쪽에서 왼쪽으로 분다. 좌표 P에 있는 기구가 속도 V인 높이에 계속 머무르면 시간 t가 흐른 뒤 좌표는 P+tV가 된다. 시간은 연속으로 흐르므로 t는 실수일 수 있다. 기구의 좌표가 0이 되는 순간 그 기구는 바로 회수된다.
기구 하나를 높이 a에서 높이 b로 옮기는 데는 에너지 ∣a−b∣가 든다. 높이를 바꾸는 데 시간은 들지 않고, 원하는 시각에 몇 번이든 바꿀 수 있다. 쓸 수 있는 에너지는 기구 전체를 통틀어 Q이며, 전부 쓰지 않아도 된다.
에너지를 가장 잘 써서 모든 기구를 회수할 때 걸리는 시간을 구하라. 시간은 정수 단위로 센다. 즉 모든 기구가 회수되는 가장 이른 시각보다 크거나 같은 정수 중 가장 작은 값이 답이다. 마지막 기구가 시각 1.5에 회수되면 답은 2이다.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 줄에는 기구의 수 N, 높이의 개수 M, 쓸 수 있는 에너지 Q가 공백으로 구분되어 주어진다. 둘째 줄에는 M개의 정수가 주어지며, 그중 j번째 값(0부터 센다)이 높이 j의 바람 속도 Vj이다. 이어지는 N개의 줄에는 각각 i번 기구의 좌표 Pi와 높이 Hi가 주어진다.
제한
각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 테스트 케이스 번호이고 1부터 시작한다. y는 모든 기구를 회수하는 데 걸리는 시간의 최솟값이다. 주어진 에너지로 모든 기구를 회수할 수 없다면 y 자리에 IMPOSSIBLE을 출력한다.
첫 번째 예제의 첫 테스트 케이스에는 기구가 두 개 있고 에너지는 1이다. 좌표 3, 높이 3에 있는 기구를 에너지 1을 써서 높이 2로 내리는 것이 가장 좋다. 높이 2의 바람 속도가 −2이므로 이 기구는 시각 1.5에 탑에 닿는다. 좌표 −2, 높이 1에 있는 기구는 속도 1인 바람을 타고 시각 2에 탑에 닿는다. 두 기구가 모두 회수되는 가장 이른 시각이 2이므로 답은 2이다.