제출 #1340720

#제출 시각아이디문제언어결과실행 시간메모리
1340720aapoorvFeast (NOI19_feast)C++20
59 / 100
1095 ms17256 KiB
#include <bits/stdc++.h>
using namespace std;



#define int long long int
#define p 1000000007

void solve() {
    int n, k;
    cin >> n >> k;
    vector<int> a(n);
    for (int &i : a)
        cin >> i;
    vector<vector<int>> next(k + 1, vector<int> (2, 0));
    for (int i = n - 1 ; i >= 0 ; i--) {
        vector<vector<int>> cur(k + 1, vector<int> (2, 0));    
        for (int j = k ; j >= 0 ; j--) {
            for (int r = 0 ; r < 2 ; r++) {
                if (j + 1 <= k) cur[j][r] = max(cur[j][r], a[i] + next[j + 1][1]);
                cur[j][r] = max(cur[j][r], next[j][0]);
                if (r) cur[j][r] = max(cur[j][r], a[i] + next[j][1]);
            }
        }
        next = cur;
    }
    cout << next[0][0] << endl;
    
}   

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    cout << setprecision(10);
    // int t;
    // cin >> t;
    // while (t--)
        solve();
    cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl;

}
#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...