Alchembit 시험
시간 제한1초메모리 제한2048 MB
N개의 물약마다 값 A_i가 주어집니다. 연속한 구간을 합칠 때마다 구간의 AND 값만큼 점수를 얻으며, 얻을 수 있는 최대 총점을 구합니다.
문제
당신은 연금술과 현대 기술이 결합된 Alchembit 시험을 치르고 있다. 시험에는 1번부터 N번까지 번호가 붙은 물약 N개가 주어지며, 물약 의 효능은 정수 이다. 점수는 0점에서 시작한다.
다음 절차로 점수를 올릴 수 있다.
- 물약이 개 남아 있을 때, 을 만족하는 구간 을 고른다.
- 구간 을 고르면 점수가 만큼 오른다. 여기서 는 비트 AND 연산이다.
- 물약 을 효능이 인 물약 하나로 합친다.
- 합쳐진 물약의 번호는 이 된다. 물약 은 번으로 번호가 바뀐다. 1번부터 번까지 물약의 번호는 그대로이다.
예를 들어 물약이 5개이고 일 때 구간 을 고르면 점수가 만큼 오른다. 물약 2번과 3번은 효능이 8인 물약 하나가 되고, 번호를 다시 매기면 는 이 된다.
물약이 하나만 남을 때까지 이 절차를 반복할 수 있다. 얻을 수 있는 최대 점수를 구하라.
입력
첫째 줄에 정수 ()이 주어진다.
둘째 줄에는 정수 () 개가 주어진다.
출력
얻을 수 있는 최대 점수를 나타내는 정수 하나를 출력한다.