結果
問題 |
No.1083 余りの余り
|
ユーザー |
👑 ![]() |
提出日時 | 2025-07-13 06:09:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 44 ms / 3,000 ms |
コード長 | 698 bytes |
コンパイル時間 | 416 ms |
コンパイル使用メモリ | 82,616 KB |
実行使用メモリ | 60,544 KB |
最終ジャッジ日時 | 2025-07-13 06:09:11 |
合計ジャッジ時間 | 3,154 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
""" https://yukicoder.me/problems/no/1083 一回値が変わると、半分未満になる よって、適用されるのは60回以下 Aのうち、最小の奴以下にはなる 何回か適用して、min(A) 未満の値でできる最大値が答え よくみたらNが思ったより小さかった 大きいほうから適用しないと意味ないので... """ N,K = map(int,input().split()) A = list(map(int,input().split())) A.sort() A.reverse() last = A.pop() s = set([K]) for a in A: add = [] for v in s: if v % a not in s: add.append(v % a) for w in add: s.add(w) ans = 0 for x in s: ans = max(ans, x % last) print (ans)