結果
問題 | No.2890 Chiffon |
ユーザー | tassei903 |
提出日時 | 2024-09-14 00:26:24 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,045 bytes |
コンパイル時間 | 182 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 154,476 KB |
最終ジャッジ日時 | 2024-09-26 14:42:03 |
合計ジャッジ時間 | 6,038 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 52 WA * 1 |
ソースコード
import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### n, k = na() a = na() f = 10 ** 18 fi = -1 for i in range(k): if (a[(i+1) % k] - a[i]) % (2 * n) < f: f = (a[(i+1) % k] - a[i]) % (2 * n) fi = i x = a[fi] a = [(a[i] - x) % (2 * n) // 2 for i in range(k)] a.sort() a.append(n) ok = 1 ng = n + 1 #print(a) while ng - ok > 1: mid = (ok + ng) // 2 FLAG = 0 for x in range(a[1]): y = x for i in range(1, k+1): y = max(y + mid, a[i]) if i < k and y >= a[i+1]: break else: #print(mid, x, y) if y <= x + n: FLAG = 1 break if FLAG: ok = mid else: ng = mid print(ok * 2)