만드는 중입니다

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

돌

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

요약
순열 a가 주어질 때, 각 질의 (p, k)마다 1단계에 칠하는 돌 중 돌 p가 정확히 k단계에 칠해지는 돌의 개수를 구합니다.
난이도

어려움10점 중 9점

유형
트리, 분할 정복, 그리디
정답자
아직 제출이 없습니다

문제

보브 앞에 검은 돌 nn개가 일렬로 놓여 있다. 돌에는 11부터 nn까지 번호가 붙어 있다. ii번째 돌에는 정수 aia_i가 적혀 있다. 11부터 nn까지의 각 수는 정확히 한 돌에만 적혀 있으므로, aia_i들은 순열을 이룬다. ii번째 돌의 인접한 돌은 (i−1)(i-1)번째 돌과 (i+1)(i+1)번째 돌이다(존재하는 경우에 한한다).

보브는 다음 nn단계를 수행한다.

  • 1단계에서 보브는 11부터 nn까지의 임의의 ii를 고르고, ii번째 돌을 흰색으로 칠한다.
  • 2단계부터 nn단계까지 보브는 흰 돌과 인접한 검은 돌들을 본다. 그중에서 aja_j가 가장 작은 돌 jj를 골라 흰색으로 칠한다.

모든 단계가 끝나면 돌 nn개가 모두 흰색이 된다는 것은 쉽게 알 수 있다.

앨리스는 qq개의 값 쌍 pjp_j, kjk_j를 골랐다. 각 쌍에 대해, 1단계에서 돌을 어떻게 고르면 pjp_j번째 돌이 정확히 kjk_j단계에 흰색이 되는지 알고 싶어 한다.

보브가 앨리스의 qq개의 질의에 답하도록 도와라.

입력

첫째 줄에 돌의 개수 nn (2≤n≤1052 \le n \le 10^5)과 질의의 개수 qq (1≤q≤1051 \le q \le 10^5)가 주어진다.

둘째 줄에 정수 a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤n1 \le a_i \le n, 모든 aia_i는 서로 다르다)이 주어진다.

다음 qq개의 줄에 질의가 주어진다. jj번째 질의는 두 정수 pjp_j와 kjk_j (1≤pj≤n1 \le p_j \le n, 1≤kj≤n1 \le k_j \le n)로 주어지며, 각각 돌의 번호와 그 돌이 흰색으로 칠해져야 하는 단계 번호이다.

출력

각 질의에 대해, 1단계에 돌 ii를 흰색으로 칠했을 때 pjp_j번째 돌이 kjk_j단계에 흰색이 되는 ii의 개수를 출력한다. 답은 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

    입력
    5 3
    5 2 3 4 1
    2 3
    4 4
    3 2
    
    예상 출력
    0
    1
    1