페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#8609
서브태스크

로봇 2s 1024MB

문제

수직선 위 서로 다른 위치에 N개의 점프대가 설치되어 있다.

i번 점프대는 고정된 위치 X_i​와 초기 점프 파워 P_i를 가진다.

당신은 이 수직선 위의 어떤 위치에 로봇을 놓을 것이다.

로봇은 다음과 같은 규칙에 따라 움직인다:

  • 로봇이 위치한 지점에 점프대가 없을 경우, 로봇은 왼쪽으로 1만큼 이동한다. 이 과정에서 1의 시간이 소요된다.

  • 로봇이 위치한 지점에 점프대가 있을 경우, 로봇은 즉시 점프대를 작동시켜 오른쪽으로 점프대의 파워만큼 이동한다.
    점프 후 점프대의 파워는 기존의 두 배로 증가한다. 이 과정에서 1의 시간이 소요된다.

예를 들어, N=2개의 점프대가 다음과 같이 설치되어 있다고 하자.

점프대 번호

위치 X_i

초기 파워 P_i

1

2

2

2

5

3

로봇이 초기 위치 S=3에서 출발하여 T=7만큼의 시간 동안 이동하는 과정은 다음과 같다.

시간(T)

로봇 위치

설명

점프대 상태

0

3

초기 위치에서 시작한다.

P_1=2,P_2=3

1

2

점프대가 없으므로 왼쪽으로 1칸 이동했다.

P_1=2,P_2=3

2

4

위치 2에 있는 1번 점프대를 작동시켜 오른쪽으로 2만큼 점프했다.

P_1=4,P_2=3

3

3

점프대가 없으므로 왼쪽으로 1칸 이동했다.

P_1=4,P_2=3

4

2

점프대가 없으므로 왼쪽으로 1칸 이동했다.

P_1=4,P_2=3

5

6

위치 2에 있는 1번 점프대를 작동시켜 오른쪽으로 4만큼 점프했다.

P_1=8,P_2=3

6

5

점프대가 없으므로 왼쪽으로 1칸 이동했다.

P_1=8,P_2=3

7

8

위치 5에 있는 2번 점프대를 작동시켜 오른쪽으로 3만큼 점프했다.

P_1=8,P_2=6

Q개의 정수 쌍 (Sj,Tj)(1≤j≤Q)이 주어진다.

각 쌍에 대해, 로봇이 위치 S_j​에서 출발하여 정확히 T_j​의 시간이 지난 후 도달하게 되는 위치를 구하는 프로그램을 작성하라.

로봇의 위치는 서로 독립적으로 계산되어야 하며, 항상 점프대의 초기 상태에서 시작한다.

즉, 각 경우마다 로봇은 수직선 위에 단 하나 존재하며, 점프대의 파워는 입력에서 주어진 초깃값으로부터 다시 시작한다.

제약 조건

  • 주어지는 모든 수는 정수이다.

  • 1≤N≤300 000

  • −10^{17}≤X_1<X_2<...<X_N≤10^{17}

  • 1≤P_i≤10^{17}(1≤i≤N)

  • 1≤Q≤300 000

  • −10^{17}≤S_j≤10^{17},1≤T_j≤10^{17}(1≤j≤Q)


입력

첫 번째 줄에 N이 주어진다.

다음 N개의 줄에 걸쳐 N개의 정수 쌍이 주어진다. 이 중 i(1≤i≤N)번째 줄에는 X_i​와 P_i​가 공백을 사이에 두고 주어진다.

다음 줄에는 Q가 주어진다.

다음 Q개의 줄에 걸쳐 Q개의 정수 쌍이 주어진다. 이 중 j(1≤j≤Q)번째 줄에는 S_j​와 T_j​가 공백을 사이에 두고 주어진다.


출력

Q개의 줄을 출력한다. 이 중 j(1≤j≤Q)번째 줄에는 로봇이 S_j에서 출발하여 정확히 T_j의 시간이 지난 후 도달하는 위치를 출력한다.


부분문제

번호 점수 조건
#15점

N=1

#211점

N=2

#36점

N,Q≤300, 1≤i≤N인 모든 i에 대하여 ∣X_i∣,P_i≤300, 1≤j≤Q인 모든 j에 대하여 ∣S_j∣,T_j≤300

#47점

N,Q≤3000, 1≤i≤N인 모든 i에 대하여 ∣X_i∣,P_i≤3 000, 1≤j≤Q인 모든 j에 대하여 ∣S_j∣,T_j≤3 000

#512점

N,Q≤9000

#623점

N≤9000

#736점

추가 제약 조건 없음.


예제 #1

2
2 2
5 3
7
3 1
3 2
3 3
3 4
3 5
3 6
3 7
2
4
3
2
6
5
8

예제 #2

3
-3 3
2 2
11 6
4
1 6
6 12
11 3
9 4
-1
2
15
5


출처

2025 KOI 2차 중3

로그인해야 코드를 작성할 수 있어요.