Submission #88638

#TimeUsernameProblemLanguageResultExecution timeMemory
88638ABCDK blocks (IZhO14_blocks)C++14
14 / 100
199 ms45504 KiB
#include <bits/stdc++.h> using namespace std; const int N=1e5+5; const int K=1e2+5; typedef pair<int,int> ii; int n,k; int a[N]; int f[K][N]; void dp(){ memset(f,1,sizeof(f)); f[1][0]=0; for(int i=1;i<=n;i++) f[1][i]=max(f[1][i-1],a[i]); for(int i=2;i<=k;i++){ stack<ii> st; for(int j=i;j<=n;j++){ int tmp=f[i-1][j-1]; while(st.size()&&a[st.top().first]<=a[j]){ tmp=min(tmp,st.top().second); st.pop(); } int p=st.size()?st.top().first:0; f[i][j]=min(f[i][p],tmp+a[j]); st.push({j,tmp}); } } cout<<f[k][n]; } main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; dp(); }

Compilation message (stderr)

blocks.cpp:33:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...