만드는 중입니다

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

게임

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

요약
정수 배열과 이동 거리 제한 D가 주어질 때, 값을 바꾸는 갱신이 있는 상황에서 첫 번째 플레이어가 이기는지 판정합니다.
난이도

어려움10점 중 8점

유형
게임 이론, 세그먼트 트리, 배열
정답자
아직 제출이 없습니다

문제

클리미와 니콜은 00번부터 N−1N - 1번까지 번호가 매겨진 NN개의 칸으로 이루어진 정수 배열 AA가 있다. 배열의 값은 모두 서로 다르다.

두 사람은 배열 위에서 말 하나를 옮기며 게임을 한다. 말은 처음에 어떤 칸에 놓여 있다. 한 번의 턴은 다음과 같이 진행된다.

  1. 차례인 사람이 말을 현재 칸에서 거리가 DD 이하인 다른 칸으로 옮긴다. 말이 xx번 칸(0≤x<N0 \le x < N)에 있을 때, ∣y−x∣≤D|y - x| \le D이고 x≠yx \ne y이면 yy번 칸(0≤y<N0 \le y < N)으로 옮길 수 있다. 말은 반드시 옮겨야 한다.
  2. 말을 yy번 칸으로 옮긴 뒤, 그 사람은 점수에 AyA_y를 더한다. 점수는 말을 옮긴 후에 더해진다.

턴은 번갈아 진행되며 클리미가 먼저 한다. 게임은 정확히 1010010^{100}번의 턴 뒤에 끝난다. 총점이 더 높은 사람이 이긴다. 점수가 같으면 클리미가 이긴다.

두 사람은 최적으로 두었을 때 결과가 어떻게 되는지 알고 싶어 한다. 주어진 AA와 DD에 대해 QQ개의 질의를 처리해야 하며, 질의는 두 종류다.

  • 갱신: 배열의 한 값을 바꾼다.
  • 질문: 주어진 초기 위치에서 먼저 두는 클리미가 최적으로 두면 이기는지 판단한다.

갱신은 이후의 질의에도 계속 유지되므로, 각 질문은 지금까지의 모든 갱신을 반영한다.

제한

  • 1≤N,Q≤2⋅1051 \le N, Q \le 2 \cdot 10^5
  • 1≤D≤251 \le D \le 25
  • 1≤Ai≤1091 \le A_i \le 10^9
  • 0≤0 \le index, startIndex <N< N
  • 1≤1 \le newValue ≤109\le 10^9
  • 갱신 후에도 AA의 값은 언제나 모두 서로 다르다.

예제1

  1. 예제 1

    입력
    2 1 1
    1 2
    2 0
    
    예상 출력
    Klimi