Submission #960874

#TimeUsernameProblemLanguageResultExecution timeMemory
960874vjudge1Split the sequence (APIO14_sequence)C++17
50 / 100
2049 ms12376 KiB
#include<bits/stdc++.h> using namespace std; long long dp[1010][1010],from[1010][1010],pre[1010]; int main(){ int n,k; cin>>n>>k; for(int i=1;i<=n;i++) cin>>pre[i],pre[i]+=pre[i-1]; memset(dp,-2,sizeof dp); for(int i=1;i<=n;i++) dp[0][i]=0; for(int i=1;i<=k;i++) for(int j=1;j<=n;j++) for(int c=0;c<j;c++) if(dp[i][j]<dp[i-1][c]+(pre[j]-pre[c])*pre[c]) dp[i][j]=dp[i-1][c]+(pre[j]-pre[c])*pre[c],from[i][j]=c; cout<<dp[k][n]<<'\n'; stack<int>stk; while(k) stk.push(n=from[k--][n]); while(stk.size()) cout<<stk.top()<<' ',stk.pop(); }
#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...