Submission #244819

#TimeUsernameProblemLanguageResultExecution timeMemory
244819NONAMEKas (COCI17_kas)C++14
20 / 100
529 ms524288 KiB
#include <bits/stdc++.h>
#define dbg(x) cerr << #x << " = " << x << "\n"
#define fast_io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie()
using namespace std;
using ll = long long;

const int fx = -(3e5 + 100);

int n, a[1000], f[500][int(3e5) + 100], total;

int rec(int p, int cur) {
    if (p == n)
        return (cur == 0) ? 0 : fx;

    if (f[p][int(1e5) + cur] != fx)
        return f[p][cur];

    int res = fx;
    res = max(res, max(rec(p + 1, cur),
                   max(rec(p + 1, cur - a[p]), rec(p + 1, cur + a[p]) + a[p])));

    return f[p][int(1e5) + cur] = res;
}

int main() {
    fast_io;

    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        total += a[i];
    }

    for (int i = 0; i < n; ++i)
    for (int j = 0; j <= 3e5; ++j)
        f[i][j] = fx;

    int res = rec(0, 0);
    cout << total - res << "\n";
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...