結果
問題 | No.28 末尾最適化 |
ユーザー | convexineq |
提出日時 | 2021-02-18 20:48:10 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,100 ms / 5,000 ms |
コード長 | 741 bytes |
コンパイル時間 | 363 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 79,360 KB |
最終ジャッジ日時 | 2024-09-15 01:53:44 |
合計ジャッジ時間 | 1,991 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 2 |
ソースコード
def solve(s,n,k,b): primes = [] for p in [2,3,5,7,11,13,17,19,23,29,31]: if b%p==0: primes.append(p) L = len(primes) res = [[0]*(n+1) for _ in range(L)] ans = 100000000 for i in range(n+1): for j,pj in enumerate(primes): ss = s c = 0 while ss%pj==0: ss //= pj c += 1 res[j][i] = c s = 1+(s*s+s*12345)%100000009 for j,pj in enumerate(primes): bb = b c = 0 while bb%pj==0: bb //= pj c += 1 res[j].sort() v = sum(res[j][:k]) ans = min(ans,v//c) return ans Q = int(input()) for _ in range(Q): print(solve(*map(int,input().split())))