만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

세전 선물 금액

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

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

보통10점 중 6점

유형
이분 탐색, 수학, 구현
정답자
아직 제출이 없습니다

문제

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

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

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

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

입력

  • 첫째 줄에 과세 구간의 개수 BB (1≤B≤201 \le B \le 20)가 주어진다.
  • 다음 BB개 줄에는 각각 실수 두 개 sis_i (0<si≤1060 < s_i \le 10^6)와 pip_i (0≤pi≤1000 \le p_i \le 100)가 주어진다. 각각 ii번째 과세 구간의 크기(파운드)와 세율(퍼센트)이다.
  • 다음 줄에 실수 PP (0≤P≤99.9990 \le P \le 99.999)가 주어진다. 모든 구간을 넘어선 소득에 매기는 세율(퍼센트)이다.
  • 다음 줄에 친구의 수 FF (0<F≤200 < F \le 20)가 주어진다.
  • 다음 FF개 줄에는 각각 실수 두 개 eje_j와 mjm_j (0≤ej≤1060 \le e_j \le 10^6, 0<mj≤1060 < m_j \le 10^6)가 주어진다. 각각 jj번째 친구가 번 금액과 그 친구가 세금을 내고 나서 손에 쥐어야 할 금액이다.

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

출력

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

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

예제2

  1. 예제 1

    입력
    1
    1000 0
    20
    3
    0.0 500
    999.5 500
    1000.0 500
    
    예상 출력
    500.000000
    624.875000
    625.000000
    
  2. 예제 2

    입력
    3
    4750.50 0
    8000 20
    10000 40
    60
    3
    0 10000
    10000 5000
    15000 5000
    
    예상 출력
    11312.375000
    7416.500000
    8624.750000