참새와 쿼리

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

요약
각 구간이 참새 수열인지 판별하는 쿼리에 답한다.
난이도

어려움10점 중 8점

유형
배열, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

kk 마리의 참새가 왼쪽 또는 오른쪽을 바라보며 일렬로 앉아 있다. 각 참새는 자기 자신과 마주 보고 있는 참새의 수만큼 운다. 즉, 어떤 참새가 왼쪽을 바라보고 있다면, 자신보다 왼쪽에 있으면서 오른쪽을 바라보는 참새의 수만큼 운다. 반대로 오른쪽을 바라보고 있다면, 자신보다 오른쪽에 있으면서 왼쪽을 바라보는 참새의 수만큼 운다.

수열 (a_1,a_2,…,a_k)(a\_1, a\_2, \dots, a\_k)가 참새 수열이라는 말은, 1≤i≤k1 \leq i \leq k인 모든 정수 ii에 대하여 왼쪽에서부터 ii번 참새가 정확히 a_ia\_i번 울도록 kk마리의 참새들이 바라볼 방향을 고를 수 있다는 것이다.


NN개의 양의 정수 A_1,A_2,…,A_NA\_1, A\_2, \dots, A\_N이 주어질 때, 다음 쿼리를 수행하는 프로그램을 작성하시오:

  • ll rr : 수열 (A_l,A_l+1,...,A_r)(A\_l, A\_{l+1}, ..., A\_r)이 참새 수열이면 YES, 아니면 NO를 출력한다.

입력

다음과 같은 형식으로 입력이 주어진다.

NN QQ

A_1A\_1 A_2A\_2 ⋯\cdots A_NA\_N

l_1l\_1 r_1r\_1

⋮\vdots

l_Ql\_Q r_Qr\_Q

출력

각 줄마다 쿼리에 대한 답을 출력한다.

제한

  • 2≤N≤200 0002 \leq N \leq 200\ 000
  • 1≤Q≤200 0001 \leq Q \leq 200\ 000
  • 1≤A_i<N1 \leq A\_i < N (1≤i≤N1 \leq i \leq N)
  • 1≤l_i≤r_i≤N1 \leq l\_i \leq r\_i \leq N (1≤i≤Q1 \leq i \leq Q)

예제2

  1. 예제 1

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

    입력
    9 5
    3 1 1 1 3 3 2 2 2
    1 8
    2 3
    2 5
    5 9
    7 9
    
    예상 출력
    NO
    YES
    YES
    YES
    NO