結果
| 問題 |
No.1083 余りの余り
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 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)
SPD_9X2