Submission #1131032

#TimeUsernameProblemLanguageResultExecution timeMemory
1131032AvianshFeast (NOI19_feast)C++17
100 / 100
165 ms10996 KiB
#include <bits/stdc++.h> using namespace std; signed main(){ ios::sync_with_stdio(0); cin.tie(0); int n,k; cin >> n >> k; int a[n]; for(int &i : a){ cin >> i; } auto ans = [&] (long long cos){ array<long long,2> dp[n][2]; dp[0][1]={a[0]-cos,1}; dp[0][0]={0,0}; for(int i = 1;i<n;i++){ array<long long,2> a1 = {dp[i-1][0][0]-cos+a[i],dp[i-1][0][1]+1}; array<long long,2> a2 = {dp[i-1][1][0]+a[i],dp[i-1][1][1]}; dp[i][1]=max(a1,a2); dp[i][0]=max(dp[i-1][0],dp[i-1][1]); } return max(dp[n-1][0],dp[n-1][1]); }; long long lo = 0; long long hi = 2e18; while(lo<hi){ long long mid = (lo+hi)/2; if(ans(mid)[1]<=k){ hi=mid; } else{ lo=mid+1; } } cout << ans(lo)[0]+ans(lo)[1]*lo; return 0; }
#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...