結果
問題 | No.2890 Chiffon |
ユーザー |
![]() |
提出日時 | 2024-09-14 11:20:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 212 ms / 2,000 ms |
コード長 | 784 bytes |
コンパイル時間 | 275 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 177,792 KB |
最終ジャッジ日時 | 2024-09-26 14:42:35 |
合計ジャッジ時間 | 6,168 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 53 |
ソースコード
N, K = map(int, input().split())A = list(map(int, input().split()))A2 = A[:]N2 = N * 2N4 = N2 * 2A2 += [i + N2 for i in A]A2 += [i + N4 for i in A]damin = N * 2for i in range(K):if damin > A2[i + 1] - A2[i]:damin = A2[i + 1] - A2[i]damini = istart = A2[damini] + 1end = A2[damini + 1]def check(x):for i in range(start, end, 2):now = if = Truefor j in range(damini + 1, damini + K + 1):if now + x >= A2[j + 1]:f = Falsebreaknow = max(now + x, A2[j] + 1)if f:return Truereturn Falselb = 1ub = N // K + 1while ub - lb > 1:mid = (ub + lb) // 2if check(2 * mid):lb = midelse:ub = midprint(2 * lb)