만드는 중입니다

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

CERN

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

요약
구간의 입자들을 서로 다른 종류끼리 충돌시킬 때 끝까지 남을 수 있는 입자 종류의 개수를 구합니다.
난이도

보통10점 중 7점

유형
배열, 해시맵, 수학, 정렬
정답자
아직 제출이 없습니다

문제

CERN은 핵물리학과 기본 입자 물리학을 연구하는 국제 기관이다. CERN의 입자 가속기 시스템은 입자를 고속으로 충돌시키는 실험에 쓰인다.

일렬로 놓인 NN개의 입자가 있다. 각 입자에는 종류 viv_i가 있으며, viv_i는 11 이상 NN 이하의 자연수이다.

QQ번의 실험을 진행한다. ii번째 실험에서는 lil_i번째 입자부터 rir_i번째 입자까지를 관찰한다(li<ril_i < r_i). 관찰 대상 입자 중 종류가 다른 입자 두 개를 골라 충돌시킬 수 있다. 그러면 두 입자는 모두 소멸한다. 관찰 대상에 종류가 다른 입자가 두 개 이상 남아 있는 동안 이 과정을 반복한다. 실험은 관찰 대상 입자가 모두 소멸하거나, 한 종류의 입자만 남은 상태에서 끝난다. 어떤 입자를 어떤 순서로 충돌시키느냐에 따라 마지막에 남는 입자의 종류가 달라질 수 있다.

충돌에는 비용이 크므로, 이 실험은 이론으로만 진행한다. 각 실험에 대해, 실험이 끝났을 때 그 종류의 입자가 몇 개 남은 상태로 끝날 수 있는 입자 종류의 수를 구하라.

입력

첫째 줄에 입자의 수 NN과 실험의 수 QQ가 주어진다.

둘째 줄에 입자의 종류 v1,…,vNv_1, \dots, v_N이 순서대로 주어진다.

이어지는 QQ개의 줄에는 각각 ii번째 실험에서 관찰하는 구간을 나타내는 두 자연수 lil_i와 rir_i가 주어진다(1≤li<ri≤N1 \le l_i < r_i \le N).

출력

QQ번의 실험마다 실험이 끝났을 때 남을 수 있는 입자 종류의 수를 한 줄에 하나씩 출력한다.

제한

모든 서브태스크에서 2≤N≤5000002 \le N \le 500000이고 1≤Q≤5000001 \le Q \le 500000이다.

힌트

첫 번째 실험에서는 종류 3과 종류 4의 입자를 충돌시킬 수 있다. 그러면 종류 2의 입자 두 개가 남는다. 다른 종류의 입자가 남는 방법은 없다.

두 번째 실험에서는 모든 종류의 입자가 일정한 개수만큼 남도록 할 수 있다.

네 번째와 다섯 번째 실험에서는 충돌을 어떻게 선택하든 종류 4의 입자가 일정한 개수만큼 남는다.

예제1

  1. 예제 1

    입력
    11 5
    2 4 2 3 4 4 3 1 4 4 4
    1 4
    2 8
    6 9
    8 10
    8 11
    
    예상 출력
    1
    4
    1
    1
    1