수문
시간 제한1초메모리 제한128 MB
각 수문은 열면 시간당 Fi를 배수하고 비용 Ci가 든다. 각 질의 (V, T)마다 Fi*T 용량의 합이 V 이상이 되는 최소 비용을 구한다.
문제
댐에는 수문이 개 있다. 각 수문은 고유한 유량과 물길을 가지며, 열리면 하류 지역에 홍수 피해를 줄 수 있다.
수문 를 열면 시간당 m³의 물이 빠져나가고, 이로 인한 피해 비용은 이다. 이 피해 비용은 수문을 여는 시간과 무관하게, 수문을 한 번이라도 열면 발생하는 고정 비용이다.
댐에는 물이 m³ 저장되어 있으며, 이 물을 모두 시간 이내에 빼내야 한다. 피해 비용의 합이 최소가 되도록 수문을 여는 방법을 구하는 프로그램을 작성하시오.
각 수문은 서로 독립적으로 동작하고, 여는 시간은 정수 시간 단위이며 최대 시간까지 열 수 있다. 따라서 수문 를 열면 최대 m³의 물을 빼낼 수 있다.
예를 들어 수문이 4개 있고 각 수문의 유량과 피해 비용이 다음과 같다고 하자.
물 5000000 m³를 7시간 이내에 빼내야 한다면, 만 열어도 m³를 빼낼 수 있으므로 충분하며, 비용은 120000이다.
물 5000000 m³를 30시간 이내에 빼내야 한다면, 와 을 함께 열면 시간당 180000 m³를 빼낼 수 있어 30시간 안에 충분히 빼낼 수 있고, 비용은 이다.
입력
첫째 줄에 수문의 개수 이 주어진다. ()
다음 개의 줄에는 각 수문 의 유량 (m³/hour)와 피해 비용 가 공백으로 구분되어 주어진다.
그다음 줄에는 질의의 개수 이 주어진다. ()
이어지는 개의 줄에는 각 질의의 와 가 주어지며, 저장된 물 m³를 시간 이내에 모두 빼내야 함을 뜻한다.
(, )
출력
각 질의마다 한 줄에 Case k: X 형식으로 출력한다. 여기서 는 1부터 시작하는 질의 번호이고, 는 최소 피해 비용이다. 만약 물 를 시간 이내에 모두 빼낼 수 없으면 대신 IMPOSSIBLE을 출력한다.