結果
| 問題 | No.28 末尾最適化 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 2 |
ソースコード
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())