結果
問題 |
No.2890 Chiffon
|
ユーザー |
![]() |
提出日時 | 2024-09-14 10:52:01 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 805 bytes |
コンパイル時間 | 526 ms |
コンパイル使用メモリ | 82,816 KB |
実行使用メモリ | 178,296 KB |
最終ジャッジ日時 | 2024-09-14 10:52:09 |
合計ジャッジ時間 | 7,322 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 WA * 16 RE * 4 |
ソースコード
N, K = map(int, input().split()) A = list(map(int, input().split())) A2 = A[:] N2 = N * 2 N4 = N2 * 2 A2 += [i + N2 for i in A] A2 += [i + N4 for i in A] damin = N * 2 for i in range(K): if damin > A2[i + 1] - A2[i]: damin = A2[i + 1] - A2[i] damini = i start = A2[damini] + 1 end = A2[damini + 1] if end < start: end += N2 def check(x): for i in range(start, end, 2): now = i f = True for j in range(damin + 1, damin + K + 1): if now + x >= A2[j + 1]: f = False break now = max(now + x, A2[j] + 1) if f: return True return False lb = 2 ub = N2 // K + 1 while ub - lb > 1: mid = (ub + lb) // 2 if check(mid): lb = mid else: ub = mid print(lb)