結果
問題 |
No.2890 Chiffon
|
ユーザー |
![]() |
提出日時 | 2024-09-13 22:43:41 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 727 bytes |
コンパイル時間 | 502 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 198,764 KB |
最終ジャッジ日時 | 2024-09-13 22:43:48 |
合計ジャッジ時間 | 6,407 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 49 WA * 3 |
ソースコード
def Bisect_Int(ok,ng,is_ok): while abs(ok-ng)>1: mid=(ok+ng)//2 if is_ok(mid): ok=mid else: ng=mid return ok N,K=map(int,input().split()) A=list(map(int,input().split())) D=[b-a for a,b in zip(A,A[1:])] D.append(2*N-sum(D)) mi=min(D) i=D.index(mi) D=D[i:]+D[:i] for i in range(K): D[i]//=2 C=[0]+D for i in range(1,K+1): C[i]+=C[i-1] def is_ok(d): for s in range(C[1]): cur=0 for k in range(1,K): cur+=d if cur<C[k]: cur=C[k] elif C[k+1]<=cur: return False cur+=d if cur<=s+N: return True return False ans=Bisect_Int(0,N+1,is_ok)*2 print(ans)