結果
| 問題 |
No.2217 Suffix+
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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)