수열의 OR 점수
시간 제한2초메모리 제한512 MB
배열을 K개의 연속한 비어 있지 않은 그룹으로 나누고, 각 그룹의 비트 OR 값 합이 최대가 되도록 한다.
문제
크기가 인 수열 와 정수 가 주어진다. 이 수열을 연속하고 비어 있지 않은 개의 그룹으로 나눈다. 수열의 모든 원소는 정확히 한 그룹에 속해야 한다.
각 그룹은 두 정수 과 로 나타내고, 번째 수부터 번째 수까지가 그 그룹에 속한다는 뜻이다. 그룹의 점수는 그룹에 속한 모든 원소를 비트 OR 한 값이다.
수열의 OR 점수는 모든 그룹의 점수를 더한 값이다.
수열을 연속하고 비어 있지 않은 개의 그룹으로 나누어 수열의 OR 점수의 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 과 가 주어진다. (, )
둘째 줄에 수열의 원소 이 공백으로 구분되어 주어진다. ()
출력
수열의 OR 점수의 최댓값을 출력한다.
힌트
첫 번째 예제는 와 로 나누면 점수가 이다.
두 번째 예제는 , , 로 나누면 점수가 이다.
세 번째 예제는 과 로 나누는 방법밖에 없다.