제출 #1165631

#제출 시각아이디문제언어결과실행 시간메모리
1165631spycoderytFeast (NOI19_feast)C++20
28 / 100
1095 ms12140 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
/*
instead of enforcing K, we find the lambda that produces K, then just do cost + lambda * K

*/
const int N = 3e5+5;
int a[N],dp[N][2][2];
int32_t main() {
    int n,k;
    cin >> n >> k;
    for(int i = 1;i<=n;i++)cin>>a[i];
    for(int j = 1;j<=k;j++) {
        for(int i = 1;i<=n;i++) {
            dp[i][j][0] = max(dp[i-1][j][0],dp[i-1][j][1]);
            dp[i][j][1] = max(dp[i-1][j-1][0] + a[i], dp[i-1][j][1] + a[i]);
            // cerr << i << " " << j << " " << dp[i][j][0] << " " << dp[i][j][1]<<"\n";
        }
    }
    cout << max(dp[n][k][0],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...
#Verdict Execution timeMemoryGrader output
Fetching results...