탐색 마스터


답안 제출

Points: 7
시간 제한: 2.0s
메모리 제한: 256M

문제 유형
허용된 언어
C, C++, Python

N개의 정수로 이루어진 수열 A가 주어집니다. 이 수열에는 같은 값이 여러 개 존재할 수 있습니다.

이 수열을 기반으로 특정 조건을 만족하는 원소가 총 몇 개인지 조사하는 Q개의 질의(Query)를 처리해야 합니다.

수열의 초기 원소들이 주어지고, 이어서 Q개의 질의가 주어질 때 각 질의의 타입에 맞는 정확한 원소의 개수를 출력하는 프로그램을 작성하시오.

질의의 타입은 다음과 같이 5가지로 주어집니다:

  • 1 X : 수열의 원소 중 X 이상인 원소의 총 개수를 출력한다. (원소 ≥ X)
  • 2 X : 수열의 원소 중 X 초과인 원소의 총 개수를 출력한다. (원소 > X)
  • 3 X : 수열의 원소 중 X 이하인 원소의 총 개수를 출력한다. (원소 ≤ X)
  • 4 X : 수열의 원소 중 X 미만인 원소의 총 개수를 출력한다. (원소 < X)
  • 5 L R : 수열의 원소 중 구간 [L, R] 내에 존재하는 원소의 총 개수를 출력한다. (L ≤ 원소 ≤ R)

입력

첫째 줄에 수열의 크기 N (1 ≤ N ≤ 100,000)과 질의의 개수 Q (1 ≤ Q ≤ 100,000)가 공백을 사이에 두고 주어진다.

둘째 줄에는 수열 A를 구성하는 N개의 정수가 공백을 사이에 두고 주어진다. 각 원소는 0 이상 1,000,000,000 이하의 정수이다.

셋째 줄부터 Q개의 줄에 걸쳐 질의가 주어진다. 각 질의는 타입 인자1 (인자2) 형식으로 주어지며, 입력되는 모든 정수 인자는 0 이상 1,000,000,000 이하이다.

(타입 5의 경우 항상 L ≤ R 임이 보장된다.)

출력

Q개의 줄에 걸쳐, 각 질의에 대한 결과를 순서대로 한 줄에 하나씩 출력한다.

예제 입력 1

10 6
5 2 5 8 2 5 10 1 5 7
1 5
2 2
3 4
4 8
5 2 5
5 4 8

예제 출력 1

7
7
3
8
6
6

코멘트

현재 작성된 코멘트가 없습니다.