SOJ ONLINE JUDGE

문제 105

구간의 순서 통계

내 상태
미제출
난이도
105번 문제 난이도 보기
Platinum II
출제자
rlatjwls7882
시간 제한
1000 ms
메모리 제한
1024 MB
105번 문제 태그 보기
구현

길이가 $N$인 정수 수열 $A_1,A_2,\cdots,A_N$과 $Q$개의 쿼리가 주어진다. 수열은 변하지 않는다. 각 쿼리를 처리해 보자.

  • $0\ l\ r\ k$: $A_l,\cdots,A_r$에서 $k$번째로 작은 값을 구한다.
  • $1\ l\ r\ x$: $A_l,\cdots,A_r$에서 $x$보다 작은 원소의 개수를 구한다.
  • $2\ l\ r\ x\ y$: $A_l,\cdots,A_r$에서 $x$ 이상 $y$ 이하인 원소의 개수를 구한다.
  • $3\ l\ r\ x$: $A_l,\cdots,A_r$에서 $x$보다 작은 원소 중 최댓값을 구한다.
  • $4\ l\ r\ x$: $A_l,\cdots,A_r$에서 $x$보다 큰 원소 중 최솟값을 구한다.

같은 값도 각각 센다. $2$번 쿼리에서 $x>y$이면 답은 $0$이다.

입력

첫 번째 줄에 두 정수 $N$, $Q$가 공백으로 구분되어 주어진다. $(1 \le N, Q \le 200\,000)$

두 번째 줄에 수열의 원소 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. $(-2^{31} \le A_i < 2^{31})$

세 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 쿼리가 주어진다. 각 쿼리의 정수는 공백으로 구분되어 주어진다. $(1 \le l \le r \le N; 1 \le k \le r-l+1; -10^{18} \le x, y \le 10^{18})$

출력

각 쿼리의 답을 쿼리가 주어진 순서대로 한 줄에 하나씩 출력한다. $3$번 또는 $4$번 쿼리에서 조건을 만족하는 값이 없으면 NONE을 출력한다.

예제 입력 1

5 8
3 -1 3 8 0
0 1 5 3
1 1 5 3
2 1 5 0 3
3 1 5 3
4 1 5 3
3 2 2 -1
4 4 4 8
2 1 5 5 0

예제 출력 1

3
2
3
0
8
NONE
NONE
0

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.