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

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

만들 수 없는 부분 수열의 합

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

요약
각 부분 배열마다 어떤 부분 수열의 합으로도 나오지 않는 가장 작은 음이 아닌 정수를 구한다.
난이도

어려움10점 중 9점

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

문제

길이가 NN인 수열 AA가 주어진다. 부분 수열은 AA에서 원소를 일부 지워 만든 수열이고, 원소를 모두 지우는 것도 가능하므로 빈 수열도 부분 수열이다. 부분 수열의 합은 그 부분 수열에 남은 정수를 모두 더한 값이며, 빈 부분 수열의 합은 0이다.

예를 들어 AA가 [1, 1, 3, 7]이면 부분 수열 [], [1], [1, 1], [3], [1, 3], [1, 1, 3]의 합은 차례로 0, 1, 2, 3, 4, 5이다. 6은 어떤 부분 수열의 합으로도 만들 수 없으므로, AA의 부분 수열의 합으로 나타낼 수 없는 가장 작은 음이 아닌 정수는 6이다.

쿼리 MM개가 주어진다. 각 쿼리는 두 정수 LL, RR로 이루어지고, 수열 AL,AL+1,…,ARA_L, A_{L+1}, \dots, A_R의 부분 수열의 합으로 나타낼 수 없는 가장 작은 음이 아닌 정수를 묻는다. 모든 쿼리의 답을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 수열의 크기 NN (1≤N≤1000001 \le N \le 100000)이 주어진다. 둘째 줄에 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. 각 수는 10910^9 이하의 자연수이고, 수열에 있는 수를 모두 더한 값도 10910^9 이하이다.

셋째 줄에 쿼리의 개수 MM (1≤M≤1000001 \le M \le 100000)이 주어진다. 넷째 줄부터 MM개의 줄에 쿼리가 한 줄에 하나씩 LiL_i RiR_i (1≤Li≤Ri≤N1 \le L_i \le R_i \le N) 형태로 주어진다.

출력

각 쿼리의 답을 입력 순서대로 한 줄에 하나씩 출력한다.

예제8

  1. 예제 1

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

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

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

    입력
    1
    1000000000
    1
    1 1
    
    예상 출력
    1
    
  5. 예제 5

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

    입력
    29
    1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456
    8
    1 29
    1 1
    2 29
    1 28
    5 10
    29 29
    1 20
    10 29
    
    예상 출력
    536870912
    2
    1
    268435456
    1
    1
    1048576
    1
    
  7. 예제 7

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

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