Submission #857811

#TimeUsernameProblemLanguageResultExecution timeMemory
85781112345678Split the sequence (APIO14_sequence)C++17
33 / 100
5 ms1116 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int nx=2e2+5; ll n, k, qs[nx]; ll dp[nx][nx], bk[nx][nx]; int main() { cin.tie(NULL)->sync_with_stdio(false); cin>>n>>k; for (int i=1; i<=n; i++) cin>>qs[i], qs[i]+=qs[i-1]; for (int i=0; i<nx; i++) for (int j=0; j<nx; j++) dp[i][j]=LLONG_MAX; dp[0][0]=0; for (int j=1; j<=k+1; j++) { for (int i=1; i<=n; i++) { for (int l=0; l<i; l++) { if (dp[l][j-1]==LLONG_MAX) continue; ll nv=dp[l][j-1]+(qs[i]-qs[l])*(qs[i]-qs[l]); if (nv<dp[i][j]) bk[i][j]=l, dp[i][j]=nv; } } } cout<<(qs[n]*qs[n]-dp[n][k+1])/2<<'\n'; ll l=n, ly=k+1; while (ly>1) { l=bk[l][ly]; ly--; cout<<l<<' '; } }
#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...