만드는 중입니다

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

여권

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

요약
각 나라가 발급하는 여권이 들어갈 수 있는 구간 [L_i, R_i]를 바탕으로, 시작 나라 X_j에서 모든 나라를 방문하는 데 필요한 여권 수의 최솟값을 구합니다. 방문할 수 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
구간, 그리디, 그래프
정답자
아직 제출이 없습니다

문제

여권은 여행자가 세계 각국에 입국할 때 사용하는 증명서이다.

행성에는 11번부터 NN번까지 번호가 붙은 NN개의 나라가 있다. 각 나라는 자국의 여권을 발급한다. 나라 ii가 발급한 여권을 가진 여행자는 나라 Li,Li+1,…,RiL_i, L_{i+1}, \dots, R_i에 입국할 수 있다. 여권을 발급한 나라에는 반드시 입국할 수 있다. 즉, Li≤i≤RiL_i \le i \le R_i이다.

친구는 여행을 좋아한다. 처음에는 여권이 없다. 그는 다음 두 행동을 반복해서 NN개 나라를 모두 방문하려고 한다.

  • 현재 머무는 나라가 발급한 여권을 받는다.
  • 지금 가진 여권으로 입국할 수 있는 나라로 이동한다.

친구가 사는 곳은 알 수 없어서, 그가 살 수 있는 후보 나라 X1,X2,…,XQX_1, X_2, \dots, X_Q가 주어진다. 각 후보에 대해 NN개 나라를 모두 방문할 수 있는지 판단하고, 방문할 수 있다면 받아야 하는 여권 수의 최솟값을 구한다.

입력

첫 줄에 NN이 주어진다. 이어지는 NN개 줄에는 각각 LiL_i와 RiR_i가 주어진다. 다음 줄에는 QQ가 주어진다. 마지막 QQ개 줄에는 각각 XjX_j가 주어진다.

출력

QQ개 줄을 출력한다. jj번째 줄에는 친구가 나라 XjX_j에 사는 경우 필요한 여권 수의 최솟값을 출력한다. NN개 나라를 모두 방문할 수 없으면 −1-1을 출력한다.

제한

2≤N≤200 0002 \le N \le 200\,000

1≤Li≤i≤Ri≤N1 \le L_i \le i \le R_i \le N (1≤i≤N1 \le i \le N)

1≤Q≤N1 \le Q \le N

1≤Xj≤N1 \le X_j \le N (1≤j≤Q1 \le j \le Q)

Xj<Xj+1X_j < X_{j+1} (1≤j≤Q−11 \le j \le Q-1)

주어지는 값은 모두 정수이다.

예제4

  1. 예제 1

    입력
    4
    1 3
    2 4
    2 3
    4 4
    1
    1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5
    1 5
    2 4
    2 3
    3 5
    1 5
    1
    3
    
    예상 출력
    4
    
  3. 예제 3

    입력
    5
    1 1
    2 3
    1 5
    3 4
    5 5
    5
    1
    2
    3
    4
    5
    
    예상 출력
    -1
    2
    1
    2
    -1
    
  4. 예제 4

    입력
    4
    1 2
    1 2
    3 4
    3 4
    4
    1
    2
    3
    4
    
    예상 출력
    -1
    -1
    -1
    -1