Submission #967474

#TimeUsernameProblemLanguageResultExecution timeMemory
967474Halym2007Split the sequence (APIO14_sequence)C++17
0 / 100
2090 ms4036 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N = 1e5 + 5; ll a[N], dp[N][205]; int n, k; ll sum (int x, int y) { ll ret = 0; for (int i = x; i <= y; ++i) { ret += a[i]; } return ret; } int main () { // freopen ("sequence.in", "r", stdin); // freopen ("sequence.out", "w", stdout); // freopen ("input.txt", "r", stdin); cin >> n >> k; for (int i = 1; i <= n; ++i) { cin >> a[i]; } reverse (a + 1,a + n + 1); // for (int i = 1; i <= n; ++i) { // for (int j = 1; j <= min (i, k); ++j) { // dp[i][j] = 0; // } // } // dp[i][j] i-cenli j grupba bolemde maximum value. // dp[1][1] = a[1]; for (int i = 2; i <= n; ++i) { for (int x = 2; x <= min (i, k + 1); ++x) { for (int j = x - 1; j < i; ++j) { dp[i][x] = max (dp[i][x], dp[j][x - 1] + sum (j + 1, i) * sum (1, j)); // if (i == 2 and x == 2) { // cout << sum (1, j) << " " << sum (j + 1, i) << " "; // return 0; // } } } } // cout << dp[2][2]; // return 0; cout << dp[n][k + 1]; }
#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...