xxxxxxxxxx
import math
M,a,b,c,K = map(int,input().split())
if K==1:
print(a)
exit()
if K==2:
print(b)
exit()
# 二次元配列作成
nex = []
for _ in range(int(math.log2(K)) + 1):
nex.append([0] * M**2)
# 初期化
for i in range(M):
for j in range(M):
temp = (pow(i,c,M)+pow(j,c,M))%M
nex[0][i*M+j]=temp*M+i
# ダブリングで表を構築
for k in range(1, int(math.log2(K)) + 1):
for m in range(M**2):
nex[k][m] = nex[k - 1][nex[k - 1][m]]
A = []
K-=2
for i in range(int(math.log2(K)) + 1):
if K>>i & 1:
A.append(i)
ans = 0
X = ((pow(b,c,M)+pow(a,c,M))%M)*M+b
for i in A:
X = nex[i][X]
print(X%M)
提出日時 | |
ユーザー | ![]() |
言語 | Python3 (pypy3 7.3.1) |
結果 | AC |
実行時間 | 570 ms |
メモリ | 1528528 kb |
テストケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
hard_01 | AC | 512 ms | 1528528 kb |
hard_02 | AC | 556 ms | 1528528 kb |
hard_03 | AC | 538 ms | 1528528 kb |
hard_04 | AC | 414 ms | 1528528 kb |
hard_05 | AC | 518 ms | 1528528 kb |
hard_06 | AC | 454 ms | 1528528 kb |
hard_07 | AC | 555 ms | 1528528 kb |
hard_08 | AC | 570 ms | 1528528 kb |
hard_09 | AC | 525 ms | 1528528 kb |
hard_10 | AC | 466 ms | 1528528 kb |
normal_01 | AC | 52 ms | 1528528 kb |
normal_02 | AC | 68 ms | 1528528 kb |
normal_03 | AC | 67 ms | 1528528 kb |
normal_04 | AC | 173 ms | 1528528 kb |
normal_05 | AC | 161 ms | 1528528 kb |
normal_06 | AC | 70 ms | 1528528 kb |
normal_07 | AC | 114 ms | 1528528 kb |
normal_08 | AC | 56 ms | 1528528 kb |
normal_09 | AC | 83 ms | 1528528 kb |
normal_10 | AC | 125 ms | 1528528 kb |
normal_11 | AC | 68 ms | 1528528 kb |
normal_12 | AC | 78 ms | 1528528 kb |
normal_13 | AC | 95 ms | 1528528 kb |
normal_14 | AC | 80 ms | 1528528 kb |
normal_15 | AC | 127 ms | 1528528 kb |
normal_16 | AC | 226 ms | 1528528 kb |
normal_17 | AC | 86 ms | 1528528 kb |
normal_18 | AC | 185 ms | 1528528 kb |
normal_19 | AC | 72 ms | 1528528 kb |
normal_20 | AC | 90 ms | 1528528 kb |
normal_21 | AC | 114 ms | 1528528 kb |
normal_22 | AC | 87 ms | 1528528 kb |
normal_23 | AC | 138 ms | 1528528 kb |
normal_24 | AC | 117 ms | 1528528 kb |
normal_25 | AC | 170 ms | 1528528 kb |
normal_26 | AC | 132 ms | 1528528 kb |
normal_27 | AC | 136 ms | 1528528 kb |
normal_28 | AC | 107 ms | 1528528 kb |
normal_29 | AC | 189 ms | 1528528 kb |
normal_30 | AC | 179 ms | 1528528 kb |
sample_01 | AC | 78 ms | 1528528 kb |
sample_02 | AC | 51 ms | 1528528 kb |