Submission #3974057
Source Code Expand
MOD = 10**9 + 7
def mul(A, B):
return [[sum(A[i][k] * B[k][j] for k in range(N)) % MOD for j in range(N)] for i in range(N)]
N, K = map(int, input().split())
A = [list(map(int, input().split())) for i in range(N)]
R = [[i==j for i in range(N)] for j in range(N)]
while K:
if K & 1:
R = mul(R, A)
A = mul(A, A)
K >>= 1
print(sum(sum(r) for r in R) % MOD)
Submission Info
| Submission Time | |
|---|---|
| Task | R - Walk |
| User | yaketake08 |
| Language | PyPy3 (2.4.0) |
| Score | 100 |
| Code Size | 392 Byte |
| Status | AC |
| Exec Time | 1598 ms |
| Memory | 73436 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 0_04, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 162 ms | 38384 KiB |
| 0_01 | AC | 175 ms | 38256 KiB |
| 0_02 | AC | 164 ms | 38256 KiB |
| 0_03 | AC | 174 ms | 38256 KiB |
| 0_04 | AC | 224 ms | 42352 KiB |
| 1_00 | AC | 162 ms | 38256 KiB |
| 1_01 | AC | 164 ms | 38256 KiB |
| 1_02 | AC | 218 ms | 42736 KiB |
| 1_03 | AC | 505 ms | 48220 KiB |
| 1_04 | AC | 212 ms | 42224 KiB |
| 1_05 | AC | 1240 ms | 64860 KiB |
| 1_06 | AC | 221 ms | 42224 KiB |
| 1_07 | AC | 1598 ms | 73436 KiB |
| 1_08 | AC | 969 ms | 60508 KiB |
| 1_09 | AC | 1257 ms | 64988 KiB |
| 1_10 | AC | 1259 ms | 66524 KiB |
| 1_11 | AC | 1192 ms | 64988 KiB |
| 1_12 | AC | 1126 ms | 64092 KiB |
| 1_13 | AC | 1323 ms | 67804 KiB |
| 1_14 | AC | 1248 ms | 66268 KiB |
| 1_15 | AC | 1248 ms | 66396 KiB |
| 1_16 | AC | 1268 ms | 67036 KiB |
| 1_17 | AC | 1350 ms | 67292 KiB |