結果
問題 | No.2570 最大最大公約数 |
ユーザー |
|
提出日時 | 2023-12-02 20:07:15 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 736 bytes |
コンパイル時間 | 406 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 24,512 KB |
最終ジャッジ日時 | 2024-11-13 17:16:04 |
合計ジャッジ時間 | 6,625 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 1 |
other | TLE * 1 -- * 27 |
ソースコード
# verification-helper: PROBLEM https://yukicoder.me/problems/no/2570 def divisors(n: int) -> list: divisor = [] for i in range(1, int(n**0.5) + 1): if n % i == 0: divisor.append(i) if i != n // i: divisor.append(n // i) divisor.sort() return divisor def main() -> None: N, K = map(int, input().split()) A = list(map(int, input().split())) p = set() for i in range(N): for j in divisors(A[i]): p.add(j) ans = [] for x in p: cnt = 0 for i in range(N): cnt += min(A[i] % x, x - (A[i] % x)) if cnt <= K: ans.append(x) print(max(ans)) if __name__ == "__main__": main()