結果
問題 | No.2365 Present of good number |
ユーザー |
![]() |
提出日時 | 2025-03-04 04:25:33 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,487 bytes |
コンパイル時間 | 349 ms |
コンパイル使用メモリ | 82,676 KB |
実行使用メモリ | 75,028 KB |
最終ジャッジ日時 | 2025-03-04 04:25:38 |
合計ジャッジ時間 | 3,979 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 17 WA * 22 |
ソースコード
from heapq import heappush, heappopdef factorization(n):arr = []temp = nfor i in range(2, int(-(-n**0.5//1))+1):if temp%i == 0:cnt = 0while temp%i == 0:cnt += 1temp //= iarr.append([i, cnt])if temp != 1:arr.append([temp, 1])if arr == []:arr.append([n, 1])return arrdef matrix(a, b):ans = [[0]*len(b[0]) for _ in range(len(a))]for i in range(len(a)):for j in range(len(b[0])):ans[i][j] = sum(a[i][k]*b[k][j]%MOD for k in range(len(b)))%MODreturn ansN, K = map(int, input().split())MOD = 10**9+7que = []S = set()for n, c in factorization(N):heappush(que, -n)S.add(n)while que:a = -heappop(que)for n, c in factorization(a+1):if n not in S:heappush(que, -n)S.add(n)S = sorted(S)D = dict()for i, s in enumerate(S):D[s] = idp = [[[0]*len(D) for _ in range(len(D))]]for i, s in enumerate(S):n = s+1for j, s2 in enumerate(S):cnt = 0while n%s2 == 0:n //= s2cnt += 1dp[0][j][i] = cntfor _ in range(59):dp.append(matrix(dp[-1], dp[-1]))A = [[0] for _ in range(len(D))]for n, c in factorization(N):A[D[n]][0] = cfor i in range(60):if 1<<i & K:A = matrix(dp[i], A)ans = 1for i in range(len(D)):ans *= pow(S[i], A[i][0], MOD)ans %= MODprint(ans)