Submission #960873

#TimeUsernameProblemLanguageResultExecution timeMemory
960873vjudge1Split the sequence (APIO14_sequence)C++17
11 / 100
1 ms600 KiB
#include<bits/stdc++.h>
using namespace std;
long long dp[11][11],from[11][11],pre[11];
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...