문제 보기 - 오와 열 (POSTECH26PPC_I)

시간 제한메모리 제한제출 횟수제출한 사람 수해결한 사람 수정답률
1000 ms1024 MiB333100.00%

포스텍 학생들이 포스텍의 눈부신 ICPC 대회 활약을 응원하기 위해 운동장에 모였다! 포스텍 팀의 코치 포닉스는 학생들이 질서 있게 대회를 응원할 수 있도록 관리하는 업무를 맡았다.

응원 학생들이 $N$개의 열을 이루어 서있고, 각 $i$번째 열에 있는 학생 수를 $A_i$라고 하자. 배열 $A = [A_1, … , A_N]$이 아래 조건을 만족할 경우, $A$인원파악 배열이라고 부른다.

$A_1 \le A_2 \le … \le A_N \le A_1 + 1$

포닉스는 학생들이 인원파악 배열에 맞게 서있는 것을 선호한다. 대열이 인원파악 배열을 이룰 경우, 포닉스는 해당 대열의 가로 인원수와 세로 인원수, 그리고 맨 마지막 줄의 인원수만 세면 총 인원수를 쉽게 알 수 있기 때문이다.

pobadpogood

포닉스는 아래 연산을 통해 학생들의 대열을 통제할 수 있다.

  • 현재 $A_i > A_{i+1}$ 을 만족하는 $i$를 하나 고른다.
  • 이후 $i$우로 밀착! 이라고 외치면 $i$열의 맨 뒷사람이 $i+1$열로 이동한다. 즉, $A_i$에는 $A_i - 1$로, $A_{i+1}$에는 $A_{i+1} + 1$ 로 값이 변경된다. 어떤 $i$$A_i > A_{i+1}$ 을 만족하지 않는다면 $i$열에 우로 밀착 연산을 사용할 수 없다.

어떤 배열에 우로 밀착 연산을 $0$번 이상 유한 번 사용하여 인원파악 배열로 바꿀 수 있다면, 해당 배열을 에이스 배열이라고 하자. 주어진 $A = [A_1, A_2, … , A_N]$에 대해, 아래의 쿼리를 해결하는 프로그램을 작성해 포닉스의 업무를 도와주자.

  • $\texttt{l r}$ : $A[l \cdots r]$이 에이스 배열이면 $\texttt{YES}$, 아니면 $\texttt{NO}$를 출력한다.

입력 형식

첫째 줄에 배열의 길이 $N$이 주어진다. ($1 \le N \le 100\ 000$)

둘째 줄에 $N$개의 정수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. ($1 \le A_i \le 10^9$)

셋째 줄에 쿼리의 개수 $Q$가 주어진다. ($1 \le Q \le 100\ 000$)

넷째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 다음과 같은 형식으로 주어진다.

  • $\texttt{l r}$ ($1 \le l \le r \le N$)

출력 형식

$Q$개의 줄에 걸쳐 각 쿼리에 대한 답을 $\texttt{YES}$ 혹은 $\texttt{NO}$로 출력한다.

예제

예제 1

입력

9
9 9 8 2 4 4 3 5 3
4
1 3
4 6
5 9
1 4

출력

YES
NO
YES
YES