컵과 구슬

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

요약
순열에 대해 m번의 구간 정렬 주문(오름차순 또는 내림차순)을 적용한 뒤 가운데 컵에 있는 구슬 번호를 구한다.
난이도

어려움10점 중 8점

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

문제

홍준이와 명우는 노는 것을 좋아한다. 심심하던 홍준이가 다음 놀이를 생각해냈다.

1번부터 nn번까지 서로 다른 번호가 붙은 컵 nn개와 구슬 nn개가 있다. 홍준이는 컵마다 구슬을 하나씩 넣고 컵의 번호 순서대로 일렬로 놓았다. 처음에 ii번 컵에는 aia_i번 구슬이 들어 있다.

홍준이는 마법을 mm번 쓴다. 마법을 한 번 쓰면 지정한 두 컵 사이에 놓인 모든 컵의 구슬을 번호 오름차순 또는 내림차순으로 정렬해서, 번호가 가장 작은 컵부터 차례로 하나씩 다시 담는다.

마법을 모두 쓰고 나면 홍준이는 명우에게 n+12\frac{n+1}{2}번 컵에 몇 번 구슬이 있는지 묻는다. nn은 항상 홀수다.

n=5n = 5, m=2m = 2, a=[5,1,4,2,3]a = [5, 1, 4, 2, 3]인 경우를 보자. 첫 번째 마법이 1번 컵부터 4번 컵까지의 구슬을 오름차순으로 정렬하면 a=[1,2,4,5,3]a = [1, 2, 4, 5, 3]이 된다. 두 번째 마법이 2번 컵부터 5번 컵까지의 구슬을 내림차순으로 정렬하면 a=[1,5,4,3,2]a = [1, 5, 4, 3, 2]가 된다. 3번 컵에는 4번 구슬이 남는다.

명우를 도와 홍준이의 질문에 답하는 프로그램을 작성하자.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다. (1≤n≤99,9991 \le n \le 99{,}999, 0≤m≤100,0000 \le m \le 100{,}000) nn은 홀수다.

둘째 줄에 nn개의 정수 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다. (1≤ai≤n1 \le a_i \le n) aa는 11부터 nn까지의 순열이다.

셋째 줄부터 mm개의 줄에 홍준이가 쓰는 마법이 순서대로 주어진다. 각 줄에는 두 정수 lil_i와 rir_i가 있다. (1≤li,ri≤n1 \le l_i, r_i \le n) li<ril_i < r_i이면 lil_i번 컵부터 rir_i번 컵까지의 구슬을 번호 오름차순으로 정렬하고, li≥ril_i \ge r_i이면 rir_i번 컵부터 lil_i번 컵까지의 구슬을 번호 내림차순으로 정렬한다.

출력

마법을 mm번 모두 쓴 뒤 n+12\frac{n+1}{2}번 컵에 있는 구슬의 번호를 출력한다.

예제5

  1. 예제 1

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

    입력
    1 0
    1
    
    예상 출력
    1
    
  3. 예제 3

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

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

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