Submission #1100532

# Submission time Handle Problem Language Result Execution time Memory
1100532 2024-10-14T08:20:20 Z Phuoc Feast (NOI19_feast) C++14
0 / 100
2 ms 4856 KB
#include <bits/stdc++.h>

using namespace std;

template <class T1, class T2>
    bool maximize (T1 &a, T2 b) {
        if(a < b) {a = b; return true;} return false;
    }

template <class T1, class T2>
    bool minimize (T1 &a, T2 b) {
        if(a > b) {a = b; return true;} return false;
    }

#define ll long long
#define el '\n'
#define fi first
#define se second
#define MASK(i) (1LL << (i))
#define BIT(mask, i) (((mask) >> (i)) & 1)

const int oo = (int)1e9 + 7;
const ll INF = (ll)1e18 + 7LL;
const int N = 555;

int n, k;
ll a[N];

void init (void) {
    cin >> n >> k;
    for (int i = 1; i <= n; i++) cin >> a[i];
}

long long pre[N], cost[N][N], f[N][N];

void solve (void) {
    for (int i = 1; i <= n; i++) pre[i] = pre[i - 1] + a[i];

    for (int i = 1; i <= n; i++) {
        for (int j = i; j <= n; j++) {
            long long mx_sum = -INF;
            long long minPre = pre[i - 1];
            for (int k = i; k <= j; k++){
                maximize(mx_sum, pre[k] - minPre);
                minimize(minPre, pre[k]);
            }
            cost[i][j] = mx_sum;
            // cout << i << ' ' << j << ' ' << cost[i][j] << el;
        }
    }
    memset(f, -0x3f, sizeof f);
    f[0][0] = 0;
    for (int i = 1; i <= n; i++) {
        for (int t = 0; t <= k; t++) {
            for (int j = 0; j < i; j++) {
                maximize(f[i][t], f[j][t]);
                if(t >= 1) maximize(f[i][t], f[j][t - 1] + cost[j + 1][i]);
            }
        }
    }
    long long ans = -INF;
    for (int i = 1; i <= n; i++) maximize(ans, f[i][k]);
    cout << ans;
}

int main (void) {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    // freopen ("test.inp", "r", stdin);
    // freopen ("test.out", "w", stdout);

    init();
    solve();

    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4688 KB Output is correct
2 Incorrect 2 ms 4856 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4688 KB Output is correct
2 Incorrect 2 ms 4856 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4688 KB Output is correct
2 Incorrect 2 ms 4856 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4688 KB Output isn't correct
2 Halted 0 ms 0 KB -