結果
| 問題 | No.28 末尾最適化 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-06-13 02:33:20 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 4,877 ms / 5,000 ms |
| コード長 | 823 bytes |
| コンパイル時間 | 252 ms |
| コンパイル使用メモリ | 12,288 KB |
| 実行使用メモリ | 11,256 KB |
| 最終ジャッジ日時 | 2025-06-13 02:33:27 |
| 合計ジャッジ時間 | 5,561 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 2 |
ソースコード
import sys
read=sys.stdin.buffer.read
readline=sys.stdin.buffer.readline
fac=[0,1]
for b in range(2, 37):
p=2
ps=[]
bb=b
while p*p<=bb:
if bb%p==0:
cnt=0
while bb%p==0:
bb//=p
cnt+=1
ps.append([p,cnt])
p+=1
if bb!=1: ps.append([bb,1])
fac.append(ps)
MOD=10**8+9
for _ in range(int(readline())):
seed,N,K,B=map(int,readline().split())
X=[seed]
now=seed
for i in range(1,N+1):
now=1+(now*(now+12345))%MOD
X.append(now)
ans=MOD
for p, cntb in fac[B]:
arr=[]
for xi in X:
c=0
while xi%p==0:
xi//=p
c+=1
arr.append(c)
arr.sort()
ans=min(ans,sum(arr[:K])//cntb)
print(ans)