結果
問題 | No.28 末尾最適化 |
ユーザー | convexineq |
提出日時 | 2021-02-18 20:48:10 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,102 ms / 5,000 ms |
コード長 | 741 bytes |
コンパイル時間 | 873 ms |
コンパイル使用メモリ | 87,036 KB |
実行使用メモリ | 80,480 KB |
最終ジャッジ日時 | 2023-10-13 04:20:22 |
合計ジャッジ時間 | 2,788 ms |
ジャッジサーバーID (参考情報) |
judge15 / judge14 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 80 ms
75,784 KB |
testcase_01 | AC | 1,102 ms
80,480 KB |
ソースコード
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())))