# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
498403 | Ziel | Split the sequence (APIO14_sequence) | C++17 | 2085 ms | 6164 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/**
* LES GREATEABLES BRO TEAM
**/
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define sz(x) (int)x.size()
const bool FLAG = false;
void setIO(const string &f = "");
#define int ll
const ll INF = 1e17+456;
int n, k;
ll dp[210][100013], a[100013], p[100013], last[210][100013];
bool was[210][100013];
ll rec(int kol, int R) {
if (kol >= k) {
return 0;
}
if (was[kol][R]) {
return dp[kol][R];
}
was[kol][R] = 1;
ll res = -INF;
for (int i = R - 1; i >= 1; i--) {
ll cur = rec(kol + 1, i);
if (cur == -INF)
continue;
if (res < p[R] * p[i] - p[i] * p[i] + cur) {
res = p[R] * p[i] - p[i] * p[i] + cur;
last[kol][R] = i;
}
}
return dp[kol][R] = res;
}
void solve() {
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i];
p[i] = p[i - 1] + a[i];
}
cout << rec(0, n) << '\n';
int R = n;
for (int i = 0; i < k; i++) {
cout << last[i][R] << ' ';
R = last[i][R];
}
}
signed main() {
setIO();
int tt = 1;
if (FLAG) {
cin >> tt;
}
while (tt--) {
solve();
}
return 0;
}
void setIO(const string &f) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
if (fopen((f + ".in").c_str(), "r")) {
freopen((f + ".in").c_str(), "r", stdin);
freopen((f + ".out").c_str(), "w", stdout);
}
}
Compilation message (stderr)
# | 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... |