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

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

행렬 거듭제곱의 합

시간 제한2초메모리 제한512 MB

요약
N×N 행렬 A와 K가 주어질 때 A + A^2 + ... + A^K의 모든 성분을 M으로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
분할 정복, 행렬, 수학
정답자
아직 제출이 없습니다

문제

N×NN \times N 행렬 AA와 정수 KK, MM이 주어진다. AKA^K의 각 원소를 MM으로 나눈 나머지를 구하는 것은 어렵지 않다.

이번에는 조금 다른 값을 구한다. 행렬 SS를

S=A+A2+A3+⋯+AKS = A + A^2 + A^3 + \cdots + A^K

로 정의할 때, SS의 각 원소를 MM으로 나눈 나머지를 출력한다.

입력

첫째 줄에 NN, KK, MM이 공백으로 구분되어 주어진다. (1≤N≤501 \le N \le 50, 1≤K≤1091 \le K \le 10^9, 1≤M≤1041 \le M \le 10^4)

다음 NN개 줄에 행렬 AA가 주어진다. 각 줄에는 NN개의 정수가 공백으로 구분되어 있다. (−104≤Aij≤104-10^4 \le A_{ij} \le 10^4)

출력

NN개 줄에 걸쳐 행렬 SS의 각 원소를 MM으로 나눈 나머지를 출력한다. 각 줄에는 NN개의 값을 공백 하나로 구분해 출력한다.

힌트

나머지는 항상 00 이상 MM 미만이어야 한다. AA의 원소가 음수일 수 있으므로 나머지의 부호에 주의한다.

예제5

  1. 예제 1

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

    입력
    1 1 1
    5
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 1000000000 10000
    2
    
    예상 출력
    8750
    
  4. 예제 4

    입력
    3 3 100
    -1 2 -3
    4 -5 6
    -7 8 -9
    
    예상 출력
    61 42 55
    0 71 58
    39 16 29
    
  5. 예제 5

    입력
    2 1 10000
    -10000 -1
    -9999 0
    
    예상 출력
    0 9999
    1 0