제출 #996936

#제출 시각아이디문제언어결과실행 시간메모리
996936ttamxFeast (NOI19_feast)C++17
100 / 100
94 ms12888 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,int> p2; const int N=3e5+5; int n,k; ll a[N],qs[N]; p2 dp[N]; p2 calc(ll lambda){ p2 mx(0,0); for(int i=1;i<=n;i++){ dp[i]=max(dp[i-1],{mx.first+qs[i]-lambda,mx.second+1}); mx=max(mx,{dp[i].first-qs[i],dp[i].second}); } return dp[n]; } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> k; for(int i=1;i<=n;i++)cin >> a[i]; for(int i=1;i<=n;i++)qs[i]=qs[i-1]+a[i]; ll l=0,r=3e14; while(l<r){ ll m=(l+r+1)/2; if(calc(m).second>=k)l=m; else r=m-1; } cout << calc(l).first+l*k; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...