아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

안아줘요

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

요약
N개의 휴식점에서 Y_i > Y_j이고 |Y_i - Y_j| <= |X_i - X_j|일 때만 i에서 j로 이동할 수 있다. 각 출발점에서 지날 수 있는 휴식점 개수의 최댓값을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

날다람쥐 한 마리가 자유 낙하를 하려고 한다.

NN개의 휴식점이 주어지고, 각각의 휴식점의 좌표 X_i,Y_iX\_i, Y\_i가 주어진다. 가장 많은 수의 휴식점을 지나가는 것이 날다람쥐의 목표이다.

안아줘요 날다람쥐는 언제나 안아줘요 포즈를 취하고 있기 때문에 공기 저항을 크게 받아 좌우 방향의 이동보다 빠르게 낙하할 수는 없다.

즉, ∣Y_i−Y_j∣≤∣X_i−X_j∣|Y\_i - Y\_j| ≤ |X\_i - X\_j|이고 Y_i>Y_jY\_i > Y\_j인 경우에만 ii번 휴식점에서 jj번 휴식점으로 이동할 수 있다.

여러 낙하 경로 중에, 가장 많은 휴식점을 지날 수 있는 경로를 선택하여 낙하하려고 한다.

QQ개의 출발 휴식점 번호가 주어질 때, 해당 휴식점에서 출발해서 지날 수 있는 휴식점의 수를 날다람쥐에게 알려주자.

입력

입력은 아래와 같이 주어진다.

NN QQ

X_1X\_1 Y_1Y\_1

...

X_NX\_N Y_NY\_N

q_1q\_1

...

q_Qq\_Q

출력

출발 휴식점에서 경유할 수 있는 최대 휴식점의 개수를 한 줄에 하나씩 출력한다. 출발 휴식점과 도착 휴식점도 출력하는 숫자에 포함한다.

제한

  • 1≤N,Q≤500,0001 \leq N,Q \leq 500\\,000
  • 0≤X_i,Y_i≤1090 ≤ X\_i, Y\_i ≤ 10^9
  • i≠ji \neq j ⇒\Rightarrow Y_i≠Y_jY\_i \neq Y\_j
  • 1≤q_i≤N1 \leq q\_i \leq N

예제1

  1. 예제 1

    입력
    5 3
    8 8
    6 7
    7 6
    5 5
    4 4
    1
    2
    3
    
    예상 출력
    5
    4
    3