Submission #13752

#TimeUsernameProblemLanguageResultExecution timeMemory
13752cometSplit the sequence (APIO14_sequence)C++98
0 / 100
0 ms131072 KiB
#include<cstdio> int d[210][100010],r[210][100010],s[100010],n,k; void f(int x,int y){ if(r[x][y]==0)return; f(x-1,r[x][y]); printf("%d ",r[x][y]); } int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%d",&s[i]); s[i]+=s[i-1]; } for(int i=1;i<=n;i++){ d[1][i]=s[i]*(s[n]-s[i]); } for(int g=2;g<=k+1;g++){ for(int i=g;i<=n;i++){ for(int j=0;j<i;j++){ if(d[g][i]<=d[g-1][j]+(s[i]-s[j])*(s[n]-s[i])){ d[g][i]=d[g-1][j]+(s[i]-s[j])*(s[n]-s[i]); r[g][i]=j; } } } } printf("%d\n",d[k+1][n]); f(k+1,n); }
#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...