제출 #818122

#제출 시각아이디문제언어결과실행 시간메모리
818122BamshooTFeast (NOI19_feast)C++14
45 / 100
26 ms26836 KiB
#include <iostream>
#include <algorithm>
#include <cstring>

#define FOR(i, a, b) for (int i = (a); i <= (b); ++i)
#define ll long long
#define inf 1e18

using namespace std;

struct dt{
    ll t, c;
    bool operator < (const dt &x) const{
        return (t > x.t);
    }
};

const int N = 3e5 + 9;
int n, k, t;
ll dp[2009][2009], a[N], pre[N];

void solve(){
    int p;
    ll s = 0;
    FOR(i, 1, n) {
        s += a[i];
        if (a[i] < 0) p = i;
    }
    cout << s - a[p];
}

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  //  freopen("nhap.inp", "r", stdin);
  //  freopen("xuat.out", "w", stdout);
    cin >> n >> k;
    FOR(i, 1, n) {
        cin >> a[i];
        t += (a[i] < 0);
        pre[i] = pre[i-1] + a[i];
    }
    if (t == 0){
        cout << pre[n]; return 0;
    }
    if (t == 1 && k > 1) {
        solve();
        return 0;
    }
    FOR(i, 1, k) {
        ll cur = 0;
        FOR(j, 1, n) {
            cur = max(cur, dp[i-1][j] - pre[j]);
            dp[i][j] = max(dp[i][j-1], pre[j] + cur);
        }
    }
    cout <<dp[k][n];
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

feast.cpp: In function 'void solve()':
feast.cpp:29:20: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   29 |     cout << s - a[p];
      |                 ~~~^
#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...