발리의 조각상
시간 제한1초메모리 제한64 MB
조각상을 순서대로 A개 이상 B개 이하의 연속 구간으로 나누어 구간별 나이 합의 비트 OR을 최소화합니다.
문제
발리의 어느 큰길에 조각상이 개 놓여 있고, 길을 따라 1번부터 번까지 차례로 번호가 붙어 있다. 조각상 의 나이는 년이다. 즉 년 전에 만들었다. 정부는 길을 더 아름답게 꾸미려고 조각상을 몇 개의 그룹으로 나누고, 그룹과 그룹 사이에 나무를 심으려 한다.
조각상을 그룹으로 나누는 규칙은 다음과 같다.
- 조각상을 정확히 개의 그룹으로 나눈다. 이때 이다. 각 그룹에는 조각상이 적어도 하나 들어가고, 각 조각상은 정확히 한 그룹에만 속한다. 한 그룹에 속한 조각상은 길 위에서 연속해야 한다.
- 그룹마다 그 그룹에 속한 조각상의 나이를 모두 더한다.
- 그룹별 합을 전부 비트 OR로 묶는다. 이 값을 그 분할의 아름다움 정도라고 한다.
아름다움 정도를 가장 작게 만들 때 그 값을 구하라.
음이 아닌 두 정수 와 의 비트 OR는 다음과 같이 계산한다. 두 수를 2진수로 나타내고, 자릿수가 짧은 쪽의 앞을 0으로 채워 길이를 맞춘다. 결과의 각 자리는 같은 위치에 있는 두 비트로 정해진다.
- 0 OR 0 = 0
- 0 OR 1 = 1
- 1 OR 0 = 1
- 1 OR 1 = 1
입력
첫째 줄에 정수 , , 가 공백으로 구분되어 주어진다. 둘째 줄에 조각상의 나이 이 공백으로 구분되어 주어진다.
- 이 100보다 크면 이다.
출력
가능한 아름다움 정도의 최솟값을 한 줄에 출력한다.
힌트
첫 번째 예제에서는 조각상을 (8 1 2)와 (1 5 4) 두 그룹으로 나눈다. 그룹별 합은 11과 10이고, 두 값의 비트 OR는 11이다.