# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
26027 | nibnalin | Split the sequence (APIO14_sequence) | C++14 | 356 ms | 5252 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.
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long int lli;
const lli maxn = 1005, maxk = 205, inf = lli(1e9)+5;
lli A[maxn], p[maxn];
pair<lli, lli> dp[maxn][maxk];
int main(void)
{
lli n, k;
scanf("%lld%lld", &n, &k);
for(lli i = 1;i <= n;i++) scanf("%lld", &A[i]);
for(lli i = 1;i <= n;i++) p[i] = A[i]+p[i-1];
for(lli kk = 1;kk <= k;kk++)
{
for(lli i = 1;i <= n;i++)
{
dp[i][kk] = {-inf, -1};
for(lli j = 0;j < i;j++)
{
dp[i][kk] = max(dp[i][kk], {dp[j][kk-1].first+(p[i]-p[j])*p[j], j});
}
}
}
printf("%lld\n", dp[n][k].first);
lli idx = n;
for(lli kk = k;kk > 0;kk--)
{
printf("%lld ", dp[idx][kk].second);
idx = dp[idx][kk].second;
}
printf("\n");
}
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... |