Submission #13066

#TimeUsernameProblemLanguageResultExecution timeMemory
13066dohyun0324K blocks (IZhO14_blocks)C++98
0 / 100
0 ms45620 KiB
#include<stdio.h> #include<algorithm> using namespace std; int n,k,a[100010],w,top,d[110][100010]; struct data{ int x,gap,p; }st[100010]; int main() { int i,j; scanf("%d %d",&n,&k); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=k;i++) { st[0].p=i-1; top=0; st[0].gap=2147483647; for(j=i;j<=n;j++) { while(st[top].x<=a[j] && top>0) top--; top++; st[top].p=j; st[top].x=a[j]; st[top].gap=min(st[top-1].gap,d[i-1][st[top-1].p]+st[top].x); d[i][j]=st[top].gap; } } printf("%d",d[k][n]); 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...