結果
問題 | No.2217 Suffix+ |
ユーザー | cho435 |
提出日時 | 2023-02-17 21:51:04 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 115 ms / 2,000 ms |
コード長 | 503 bytes |
コンパイル時間 | 1,826 ms |
コンパイル使用メモリ | 202,092 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-19 13:03:20 |
合計ジャッジ時間 | 4,342 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 33 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<int(n);i++) int main(){ int n,k; cin>>n>>k; vector<ll> a(n); rep(i,n) cin>>a.at(i); ll up=1e15; ll dw=0; while(up-dw>1){ ll md=(up+dw)/2; ll ad=0; ll ct=0; rep(i,n){ if(a.at(i)+ad<md){ ct+=(md-(a.at(i)+ad)+i)/(i+1); ad+=((md-(a.at(i)+ad)+i)/(i+1))*(i+1); } if(ct>k) break; } if(ct>k) up=md; else dw=md; } cout<<dw<<'\n'; }