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

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

발리의 조각상

시간 제한1초메모리 제한64 MB

요약
조각상을 순서대로 A개 이상 B개 이하의 연속 구간으로 나누어 구간별 나이 합의 비트 OR을 최소화합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 비트 연산
정답자
아직 제출이 없습니다

문제

발리의 어느 큰길에 조각상이 NN개 놓여 있고, 길을 따라 1번부터 NN번까지 차례로 번호가 붙어 있다. 조각상 ii의 나이는 YiY_i년이다. 즉 YiY_i년 전에 만들었다. 정부는 길을 더 아름답게 꾸미려고 조각상을 몇 개의 그룹으로 나누고, 그룹과 그룹 사이에 나무를 심으려 한다.

조각상을 그룹으로 나누는 규칙은 다음과 같다.

  • 조각상을 정확히 XX개의 그룹으로 나눈다. 이때 A≤X≤BA \le X \le B이다. 각 그룹에는 조각상이 적어도 하나 들어가고, 각 조각상은 정확히 한 그룹에만 속한다. 한 그룹에 속한 조각상은 길 위에서 연속해야 한다.
  • 그룹마다 그 그룹에 속한 조각상의 나이를 모두 더한다.
  • 그룹별 합을 전부 비트 OR로 묶는다. 이 값을 그 분할의 아름다움 정도라고 한다.

아름다움 정도를 가장 작게 만들 때 그 값을 구하라.

음이 아닌 두 정수 PP와 QQ의 비트 OR는 다음과 같이 계산한다. 두 수를 2진수로 나타내고, 자릿수가 짧은 쪽의 앞을 0으로 채워 길이를 맞춘다. 결과의 각 자리는 같은 위치에 있는 두 비트로 정해진다.

  • 0 OR 0 = 0
  • 0 OR 1 = 1
  • 1 OR 0 = 1
  • 1 OR 1 = 1

입력

첫째 줄에 정수 NN, AA, BB가 공백으로 구분되어 주어진다. 둘째 줄에 조각상의 나이 Y1,Y2,…,YNY_1, Y_2, \dots, Y_N이 공백으로 구분되어 주어진다.

  • 1≤N≤20001 \le N \le 2000
  • 1≤A≤B≤N1 \le A \le B \le N
  • 0≤Yi≤10000000000 \le Y_i \le 1000000000
  • NN이 100보다 크면 A=1A = 1이다.

출력

가능한 아름다움 정도의 최솟값을 한 줄에 출력한다.

힌트

첫 번째 예제에서는 조각상을 (8 1 2)와 (1 5 4) 두 그룹으로 나눈다. 그룹별 합은 11과 10이고, 두 값의 비트 OR는 11이다.

예제8

  1. 예제 1

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

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

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

    입력
    4 4 4
    1 2 4 8
    
    예상 출력
    15
    
  5. 예제 5

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

    입력
    3 1 1
    1000000000 1000000000 1000000000
    
    예상 출력
    3000000000
    
  7. 예제 7

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

    입력
    6 3 3
    1 1 1 1 1 1
    
    예상 출력
    2