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

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

행렬 제곱의 합

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

요약
N×N 행렬 A와 큰 지수 B가 주어질 때 A의 1제곱부터 B제곱까지의 합을 구해 각 원소를 1000으로 나눈 나머지를 출력한다.
난이도

보통10점 중 7점

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

문제

크기가 N×NN \times N인 행렬 AA가 주어진다. AA의 1제곱부터 BB제곱까지 모두 더한 행렬

S=A1+A2+⋯+ABS = A^1 + A^2 + \cdots + A^B

를 구하는 프로그램을 작성하시오.

원소가 매우 커질 수 있으므로, SS의 각 원소를 1,000으로 나눈 나머지를 출력한다.

입력

첫째 줄에 행렬의 크기 NN과 지수의 상한 BB가 공백으로 구분되어 주어진다. (2≤N≤52 \le N \le 5, 1≤B≤100,000,000,0001 \le B \le 100{,}000{,}000{,}000)

둘째 줄부터 NN개의 줄에 걸쳐 행렬 AA의 원소가 한 줄에 NN개씩 공백으로 구분되어 주어진다. 각 원소는 1,000보다 작거나 같은 자연수 또는 0이다.

출력

NN개의 줄에 걸쳐 행렬 SS를 출력한다. ii번째 줄에는 SS의 ii번째 행에 있는 원소 NN개를 1,000으로 나눈 나머지를 공백으로 구분해 출력한다.

예제3

  1. 예제 1

    입력
    2 5
    1 2
    3 4
    
    예상 출력
    313 914
    871 184
    
  2. 예제 2

    입력
    3 3
    1 2 3
    4 5 6
    7 8 9
    
    예상 출력
    499 614 729
    132 391 650
    765 168 571
    
  3. 예제 3

    입력
    5 10
    1 0 0 0 1
    1 0 0 0 1
    1 0 0 0 1
    1 0 0 0 1
    1 0 0 0 1
    
    예상 출력
    23 0 0 0 23
    23 0 0 0 23
    23 0 0 0 23
    23 0 0 0 23
    23 0 0 0 23