結果
問題 | No.28 末尾最適化 |
ユーザー | aaaaaaaaaa2230 |
提出日時 | 2021-12-31 20:34:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,121 ms / 5,000 ms |
コード長 | 749 bytes |
コンパイル時間 | 270 ms |
コンパイル使用メモリ | 82,508 KB |
実行使用メモリ | 83,380 KB |
最終ジャッジ日時 | 2024-10-08 23:43:55 |
合計ジャッジ時間 | 2,036 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 46 ms
60,036 KB |
testcase_01 | AC | 1,121 ms
83,380 KB |
ソースコード
mod = 10**8+9 def solve(): seed,n,k,b = map(int,input().split()) l = [] p = [] for i in range(2,b+1): if b%i: continue l.append(i) c = 0 while b%i == 0: b //= i c += 1 p.append(c) lis = [[] for i in range(len(l))] for i in range(n+1): now = seed for j,m in enumerate(l): c = 0 while now%m == 0: now //= m c += 1 lis[j].append(c) seed = 1 + (seed*(seed+12345))%mod ans = 10**10 for i,l in enumerate(lis): l.sort() s = sum(l[:k]) ans = min(ans,s//p[i]) return ans Q = int(input()) for i in range(Q): print(solve())