셰프 건공이

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

요약
구간이 주어질 때 그 안의 값을 원하는 만큼 골라 XOR 값과 고른 개수의 합이 최대가 되도록 만들어야 한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 비트 연산, 누적 합, 완전 탐색
정답자
아직 제출이 없습니다

문제

알고 있었는가, 사실 건공이는 굉장히 유능한 요리사라는 사실을. 건공이는 어떤 재료들을 받아도 가장 맛있는 음식을 만들어 낼 수 있는 엄청난 능력이 있다.

건공이는 11번 재료부터 NN번 재료까지 총 NN개의 재료를 가지고 있다. 각 재료는 T_iT\_i의 맛 수치를 가진다. 건공이가 만드는 음식의 맛은 (사용한 모든 재료의 맛들을 XOR한 값 + 사용한 모든 재료의 개수)로 나타낼 수 있다.

QQ개의 쿼리가 주어지고 각 쿼리마다 ll과 rr이 주어질 때, 각 쿼리에 대하여 ll번째 재료부터 rr번째 재료까지 (r−l+1r - l + 1)개의 재료 중 00개 이상을 적절히 사용하여 만들 수 있는 요리의 맛 중 최댓값을 구하여라.

입력

첫 번째 줄에 재료의 개수 NN이 주어진다. (1≤N≤500 1 \leq N \leq 500)

두 번째 줄에 NN개의 재료의 맛 수치 T_1,T_2,⋯ ,T_NT\_1, T\_2, \cdots, T\_N이 공백으로 구분되어 주어진다. (0≤T_i≤5110 \leq T\_i \leq 511)

세 번째 줄에 쿼리의 개수 QQ가 주어진다. (1≤Q≤100 0001 \leq Q \leq 100\ 000)

다음 QQ개의 줄에 ll과 rr이 공백으로 구분되어 주어진다. (1≤l≤r≤N1\leq l \leq r \leq N)

출력

QQ개의 줄에 각 쿼리마다 건공이가 만들 수 있는 요리의 맛 중 최댓값을 한 줄씩 출력한다.

예제1

  1. 예제 1

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