아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

지배하는 택배 회사

시간 제한3초메모리 제한512 MB

요약
배송 순서대로 적힌 택배사 번호에서 각 구간에 절반을 초과해 등장한 택배사를 찾고 없으면 0을 출력합니다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 이분 탐색
정답자
아직 제출이 없습니다

문제

바이트아사르는 컴퓨터 게임을 파는 BAJ 사에서 일한다. BAJ 사는 여러 택배 회사와 계약을 맺고, 팔린 게임을 고객에게 배송한다. 바이트아사르는 이 계약이 공정하게 지켜지는지 점검하는 중이다. 그의 손에는 발송된 소포를 순서대로 적은 기록이 있고, 소포마다 배송을 맡은 택배 회사의 번호가 함께 적혀 있다.

어떤 기간에 발송된 소포 가운데 절반을 넘는 수를 한 택배 회사가 배송했다면, 그 회사가 그 기간을 지배했다고 한다. 바이트아사르는 주어진 기간마다 그 기간을 지배한 택배 회사가 있는지, 있다면 어느 회사인지 알고 싶다.

각 기간을 지배한 택배 회사를 구하거나 그런 회사가 없음을 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 BAJ 사가 발송한 소포의 개수 nn과 지배 여부를 판정할 기간의 개수 mm이 공백 하나를 사이에 두고 주어진다 (1≤n,m≤500 0001 \le n, m \le 500\,000). 택배 회사에는 11번부터 최대 nn번까지 번호가 매겨져 있다.

둘째 줄에 nn개의 정수 p1,p2,…,pnp_1, p_2, \dots, p_n이 공백 하나씩을 사이에 두고 주어진다 (1≤pi≤n1 \le p_i \le n). pip_i는 발송 순서로 ii번째인 소포를 배송한 택배 회사의 번호이다.

이어지는 mm개의 줄에 기간이 한 줄에 하나씩 주어진다. 각 줄에는 두 정수 aa와 bb가 공백 하나를 사이에 두고 주어진다 (1≤a≤b≤n1 \le a \le b \le n). 이는 aa번째 소포부터 bb번째 소포까지, 양 끝을 포함한 기간을 지배한 택배 회사를 구하라는 뜻이다.

출력

주어진 기간마다 한 줄씩, 모두 mm개의 줄을 출력한다. 각 줄에는 그 기간을 지배한 택배 회사의 번호를 출력하고, 그런 회사가 없으면 00을 출력한다.

예제2

  1. 예제 1

    입력
    7 5
    1 1 3 2 3 4 3
    1 3
    1 4
    3 7
    1 7
    6 6
    
    예상 출력
    1
    0
    3
    0
    4
    
  2. 예제 2

    입력
    1 1
    1
    1 1
    
    예상 출력
    1