세전 선물 금액

누진세 구간과 각 친구의 기존 소득이 주어질 때, 세후 금액이 정확히 요구값이 되는 가장 작은 세전 증여액을 구한다.

보통6이분 탐색수학구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

George는 복권에 당첨되어 그 돈을 친구들에게 나눠 주기로 했다. 그런데 선물로 받은 돈도 일정 금액을 넘으면 세금이 붙고, 세액은 그 친구가 그해에 이미 번 금액에 따라 달라진다.

세금은 과세 구간으로 계산한다. 구간은 0에서 시작해 차례로 이어지며, 각 구간은 그 구간에 들어가는 소득에 자기 세율을 매긴다. 마지막 구간은 나머지 구간의 크기를 모두 더한 값을 넘는 소득 전체에 적용된다.

어떤 친구가 그해에 이미 ee만큼 벌었고 George가 세전 금액 gg를 준다면, 그 친구의 그해 소득은 ee에서 e+ge+g로 늘어난다. 이때 내는 세금은 소득 e+ge+g에 대한 세금 총액에서 소득 ee에 대한 세금 총액을 뺀 값이고, 친구가 손에 쥐는 금액은 gg에서 그 세금을 뺀 값이다.

과세 구간의 개수, 각 친구가 번 금액, 각 친구가 세금을 내고 나서 손에 쥐어야 할 금액이 주어진다. George가 각 친구에게 세전으로 얼마를 줘야 하는지 구하라.

입력

  • 첫째 줄에 과세 구간의 개수 BB (1B201 \le B \le 20)가 주어진다.
  • 다음 BB개 줄에는 각각 실수 두 개 sis_i (0<si1060 < s_i \le 10^6)와 pip_i (0pi1000 \le p_i \le 100)가 주어진다. 각각 ii번째 과세 구간의 크기(파운드)와 세율(퍼센트)이다.
  • 다음 줄에 실수 PP (0P99.9990 \le P \le 99.999)가 주어진다. 모든 구간을 넘어선 소득에 매기는 세율(퍼센트)이다.
  • 다음 줄에 친구의 수 FF (0<F200 < F \le 20)가 주어진다.
  • 다음 FF개 줄에는 각각 실수 두 개 eje_jmjm_j (0ej1060 \le e_j \le 10^6, 0<mj1060 < m_j \le 10^6)가 주어진다. 각각 jj번째 친구가 번 금액과 그 친구가 세금을 내고 나서 손에 쥐어야 할 금액이다.

과세 구간은 낮은 구간부터 차례로 주어진다.

출력

친구마다 한 줄씩, 입력에 주어진 순서대로 FF개 줄을 출력한다.

각 줄에는 George가 그 친구에게 줘야 하는 세전 금액을 소수점 아래 여섯째 자리까지 반올림해 출력한다. 친구가 정확히 mjm_j를 손에 쥐게 하는 금액이 여러 개면 그중 가장 작은 금액을 출력한다.