만드는 중입니다

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

A의 Sum Mod Pair 연산

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

요약
배열 A와 2의 거듭제곱인 M이 주어질 때, K가 최대 10^9인 SMPA^K(A, M) 원소들의 합을 998244353으로 나눈 나머지를 구합니다.
난이도

보통10점 중 6점

유형
수학, 정수론, 배열
정답자
아직 제출이 없습니다

문제

Jono는 배열을 좋아한다. 그는 배열에 대한 특정 연산에 흥미를 느끼며, 이를 Sum Mod Pair of A, 줄여서 SMPA라고 부른다.

정수 배열 AA (인덱스는 00부터 N−1N - 1까지)와 2의 거듭제곱인 정수 MM이 주어질 때, 연산 SMPA(A,M)\text{SMPA}(A, M)은 크기가 N2N^2인 배열(인덱스는 00부터 N2−1N^2-1까지)을 반환한다. 이 배열의 ii번째 원소는 x=⌊i/N⌋x = \lfloor i/N \rfloor, y=i mod Ny = i \bmod N일 때 (Ax+Ay) mod M(A_x+A_y) \bmod M이다.

예를 들어 AA가 {2, 4, 5}이고 M=8M = 8이면, SMPA(A,M)\text{SMPA}(A, M)은 {4, 6, 7, 6, 0, 1, 7, 1, 2}이다.

Jono는 SMPA 연산 한 번으로는 만족하지 못한다. 양의 정수 KK에 대해 SMPAK\text{SMPA}^K를 다음과 같이 정의한다. K=1K = 1이면 SMPAK(A,M)=SMPA(A,M)\text{SMPA}^K(A, M) = \text{SMPA}(A, M)이고, 그 밖의 경우에는 SMPAK(A,M)=SMPAK−1(SMPA(A,M),M)\text{SMPA}^K(A, M) = \text{SMPA}^{K-1}(\text{SMPA}(A, M), M)이다.

예를 들어 AA가 {1, 2}이고 M=8M = 8이면, SMPA1(A,M)\text{SMPA}^1(A, M)은 {2, 3, 3, 4}이고, SMPA2(A,M)\text{SMPA}^2(A, M)은 {4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 0}이다.

배열 크기가 지수적으로 커지므로 Jono는 결과를 출력할 수 없다. 그가 알고 싶은 것은 SMPAK(A,M)\text{SMPA}^K(A, M)의 모든 원소의 합뿐이다. 그 합을 998244353으로 나눈 나머지를 구하라.

입력

첫 줄에 세 정수 NN, MM, KK가 주어진다 (1≤N≤1000001 \le N \le 100000, M∈{20,21,…,218}M \in \{2^0, 2^1, \dots, 2^{18}\}, 1≤K≤1091 \le K \le 10^9). 다음 줄에는 배열 AA의 원소 NN개 AiA_i (0≤Ai<M0 \le A_i < M)가 주어진다.

출력

SMPAK(A,M)\text{SMPA}^K(A, M)의 모든 원소의 합을 998244353으로 나눈 음이 아닌 나머지를 한 줄에 정수로 출력한다.

예제3

  1. 예제 1

    입력
    3 8 1
    0 1 2
    
    예상 출력
    18
    
  2. 예제 2

    입력
    3 8 2
    0 1 2
    
    예상 출력
    316
    
  3. 예제 3

    입력
    5 8192 3
    1000 2000 3000 4000 5000
    
    예상 출력
    577938879