만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Alchembit 시험

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

요약
N개의 물약마다 값 A_i가 주어집니다. 연속한 구간을 합칠 때마다 구간의 AND 값만큼 점수를 얻으며, 얻을 수 있는 최대 총점을 구합니다.
난이도

보통10점 중 7점

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

문제

당신은 연금술과 현대 기술이 결합된 Alchembit 시험을 치르고 있다. 시험에는 1번부터 N번까지 번호가 붙은 물약 N개가 주어지며, 물약 ii의 효능은 정수 AiA_i이다. 점수는 0점에서 시작한다.

다음 절차로 점수를 올릴 수 있다.

  1. 물약이 nn개 남아 있을 때, 1≤l<r≤n1 \le l < r \le n을 만족하는 구간 [l,r][l, r]을 고른다.
  2. 구간 [l,r][l, r]을 고르면 점수가 Al & Al+1 & … & ArA_l \,\&\, A_{l+1} \,\&\, \dots \,\&\, A_r만큼 오른다. 여기서 &\&는 비트 AND 연산이다.
  3. 물약 l,l+1,…,rl, l+1, \dots, r을 효능이 Al & … & ArA_l \,\&\, \dots \,\&\, A_r인 물약 하나로 합친다.
  4. 합쳐진 물약의 번호는 ll이 된다. 물약 r+1,…,nr+1, \dots, n은 l+1,…,l+(n−r)l+1, \dots, l+(n-r)번으로 번호가 바뀐다. 1번부터 l−1l-1번까지 물약의 번호는 그대로이다.

예를 들어 물약이 5개이고 A=[19,12,10,20,23]A = [19, 12, 10, 20, 23]일 때 구간 [2,3][2, 3]을 고르면 점수가 12 & 10=812 \,\&\, 10 = 8만큼 오른다. 물약 2번과 3번은 효능이 8인 물약 하나가 되고, 번호를 다시 매기면 AA는 [19,8,20,23][19, 8, 20, 23]이 된다.

물약이 하나만 남을 때까지 이 절차를 반복할 수 있다. 얻을 수 있는 최대 점수를 구하라.

입력

첫째 줄에 정수 NN (2≤N≤100,0002 \le N \le 100,000)이 주어진다.

둘째 줄에는 정수 AiA_i (0≤Ai<2300 \le A_i < 2^{30}) NN개가 주어진다.

출력

얻을 수 있는 최대 점수를 나타내는 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    5
    19 12 10 20 23
    
    예상 출력
    28
    
  2. 예제 2

    입력
    4
    1000000000 1000000000 1000000000 1000000000
    
    예상 출력
    3000000000