만드는 중입니다

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

XOr

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

요약
정수 배열을 정확히 m개의 연속 구간으로 나눌 때, 각 구간 XOR 합들의 OR이 가장 작은 값을 구합니다.
난이도

어려움10점 중 8점

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

문제

bobo에게 정수 수열 a_1,a_2,…,a_na\_1, a\_2, \dots, a\_n이 있다. bobo는 이 수열을 연속된 mm개의 부분으로 정확히 나눈다.

각 부분의 비용은 그 부분의 xor 합(비트 단위 배타적 논리합)이다. 나눔의 비용은 각 부분 비용의 비트 단위 or 합이다.

bobo를 도와 최소 비용을 구하라.

입력

첫째 줄에 정수 nn, mm이 주어진다 (1≤n≤200000,1≤m≤n1 \leq n \leq 200000, 1 \leq m \leq n). 둘째 줄에 정수 a_1,a_2,…,a_na\_1, a\_2, \dots, a\_n이 주어진다 (0≤a_i≤1090 \leq a\_i \leq 10^9).

출력

최소 비용을 한 개의 정수로 출력한다.

예제2

  1. 예제 1

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

    입력
    4 3
    1 2 0 2
    
    예상 출력
    3