아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

최고의 분할

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

요약
의사난수로 생성된 배열을 길이 L 이하의 K개 구간으로 나눌 때, 각 구간의 XOR 합이 X 이하가 되는 최대 K를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 누적 합, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

NN개의 정수로 이루어진 배열 AA가 주어진다.

두 정수 KK와 LL도 주어진다.

배열 AA 전체를 정확히 KK개의 비어 있지 않은 구간으로 나누되, 각 구간의 길이는 LL 이하여야 한다.

구간 [S,E][S, E]의 비용은 AA에서 인덱스가 [S,E][S, E]에 속하는 모든 원소의 비트 XOR 합이다.

분할의 점수는 그 분할에 있는 KK개 구간의 비용 중 최댓값이다. 여기서는 분할의 점수를 최소로 하는 최고의 분할에 관심이 있다. 이 문제는 너무 쉬울 테니, 문제를 뒤집어 보자.

최소 점수를 알고 있다고 하자. 즉 원래 문제의 답이 XX 이하이다. 이제 KK의 최댓값을 구하라.

입력

첫째 줄에 세 정수 NN, XX, LL이 주어진다 (1≤L≤N≤1051 \le L \le N \le 10^5, 0≤X<268 435 4560 \le X < 268\,435\,456).

둘째 줄에 세 정수 A1A_{1}, PP, QQ가 주어진다 (0≤A1,P,Q<268 435 4560 \le A_{1}, P, Q < 268\,435\,456). 배열 AA의 나머지 원소는 이 세 정수로 다음과 같이 생성된다. 모든 1<k≤N1 < k \le N에 대해 Ak=(Ak−1⋅P+Q) mod 268 435 456A_{k} = (A_{k - 1} \cdot P + Q) \bmod 268\,435\,456이다.

출력

답을 한 줄에 출력한다. 답이 존재하지 않으면 00을 출력한다.

예제2

  1. 예제 1

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

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