This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
// #define int long long
#pragma GCC optimize ("inline")
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("03")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native")
const int N = 1e5 + 7, mod = 1e9 + 7;
int a[N];
long long dp[N][207], pref[N];
int pr[N][207];
void solve() {
int n, K;
cin>>n>>K;
for(int i = 1; i <= n; i++) {
cin>>a[i];
pref[i] = pref[i - 1] + a[i];
}
long long maxx = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= min(K, i); j++) {
for(int k = 1; k < i; k++) {
long long x = dp[k][j - 1] + (pref[i] - pref[k]) * 1ll * pref[k];
if(x >= dp[i][j]) {
dp[i][j] = x;
pr[i][j] = k;
}
}
}
}
cout << dp[n][K] << '\n';
int j = pr[n][K];
int cnt = K;
vector<int> ans;
while(j > 0) {
ans.push_back(j);
j = pr[j][--cnt];
}
reverse(ans.begin(), ans.end());
for(auto to : ans)cout << to << ' ';
cout << '\n';
}
signed main() {
// freopen ("sequence.in", "r", stdin);
// freopen ("sequence.out", "w", stdout);
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
int t = 1;
// cin>>t;
// int cases = 0;
while(t -- ) {
// cases ++;
// cout << "Case " << cases << ": ";
solve();
}
}
/*
*/
Compilation message (stderr)
sequence.cpp: In function 'void solve()':
sequence.cpp:21:15: warning: unused variable 'maxx' [-Wunused-variable]
21 | long long maxx = 0;
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |