結果
| 問題 |
No.2217 Suffix+
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2023-08-29 11:36:35 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 128 ms / 2,000 ms |
| コード長 | 575 bytes |
| コンパイル時間 | 1,668 ms |
| コンパイル使用メモリ | 167,412 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-30 23:19:51 |
| 合計ジャッジ時間 | 4,494 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 33 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
const int kMaxN=1e5+3;
unsigned long long n,k,a[kMaxN],minn=LLONG_MAX;
bool C(unsigned long long x){
unsigned long long s=0,w=0;
for(int i=1;i<=n;i++){
if(a[i]+s<x){
w+=(x-a[i]-s+i-1)/i;
s+=(x-a[i]-s+i-1)/i*i;
}
}
return w<=k;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
minn=min(minn,a[i]);
}
unsigned long long l=0,r=minn+k*n;
while(l<r){
unsigned long long mid=(l+r+1)/2;
if(C(mid)){
l=mid;
}else{
r=mid-1;
}
}
cout<<l;
return 0;
}
vjudge1