結果
問題 | No.2570 最大最大公約数 |
ユーザー | rlangevin |
提出日時 | 2023-12-17 12:04:30 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 517 ms / 2,000 ms |
コード長 | 545 bytes |
コンパイル時間 | 161 ms |
コンパイル使用メモリ | 82,136 KB |
実行使用メモリ | 66,744 KB |
最終ジャッジ日時 | 2024-11-13 17:17:29 |
合計ジャッジ時間 | 4,371 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 28 |
ソースコード
def div(n): if n <= 0: return [] S = set() i = 1 while i * i <= n: if n % i == 0: S.add(i) S.add(n // i) i += 1 return list(S) N, K = map(int, input().split()) A = list(map(int, input().split())) ans = 1 S = set() for i in range(N): for d in div(A[i]): S.add(d) def check(d): v = 0 for i in range(N): v += min(A[i]%d, (d - A[i] % d) % d) return v <= K for d in S: if check(d): ans = max(ans, d) print(ans)