제출 #1198483

#제출 시각아이디문제언어결과실행 시간메모리
1198483steve_cspK blocks (IZhO14_blocks)C++17
100 / 100
79 ms1864 KiB
#include <bits/stdc++.h> #define ll long long #define memaybeo main #define en "\n"; #define hackspeed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define dafug return 0; #define fi first #define se second using namespace std; const int mmb = 1e5 + 5,inf = 1e9+369; int n,k,a[mmb],dp[mmb],lef[mmb]; pair<int,int>p[mmb]; signed main() { cin >> n >> k; for(int i=1;i<=n;++i) cin >> a[i],lef[i] = max(lef[i-1],a[i]); for(int j=2;j<=k;++j) { int sz = 0; for(int i=1;i<=n;++i) { int ans = j <= i ? lef[i-1] : inf; lef[i-1] = dp[i-1]; while(sz and a[i] >= p[sz-1].fi) ans = min(ans,p[--sz].se); if(!sz or a[i] + ans < p[sz-1].fi + p[sz-1].se) p[sz++] = make_pair(a[i],ans); dp[i] = p[sz-1].fi + p[sz-1].se; } lef[n] = dp[n]; } cout << lef[n]; dafug }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...