結果
問題 | No.2217 Suffix+ |
ユーザー | Hydru |
提出日時 | 2023-02-17 22:35:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 82 ms / 2,000 ms |
コード長 | 577 bytes |
コンパイル時間 | 318 ms |
コンパイル使用メモリ | 82,596 KB |
実行使用メモリ | 95,616 KB |
最終ジャッジ日時 | 2024-07-19 13:46:55 |
合計ジャッジ時間 | 3,599 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 33 |
ソースコード
n,k=map(int,input().split()) A=list(map(int,input().split())) if k==0: print(min(A)) exit() min_num=2**61-1 min_ind=[] for i in range(n): if min_num>A[i]: min_ind.append(i) min_num=A[i] ans=A[min_ind[-1]] for j in range(len(min_ind)-1,-1,-1): if j==0: ans+=k break n_ind=min_ind[j] p_ind=min_ind[j-1] y=(A[p_ind]-ans)//(n_ind+1) if y>=k: ans+=k*(n_ind+1) break k-=y ans+=y*(n_ind+1) if min(ans+n_ind+1,A[p_ind])>=ans+p_ind+1: k-=1 ans=A[p_ind] print(ans)