Submission #1318644

#TimeUsernameProblemLanguageResultExecution timeMemory
1318644aryanFeast (NOI19_feast)C++20
59 / 100
46 ms1592 KiB
#include<bits/stdc++.h>
using namespace std;

using i64 = long long;


int main(){
        
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n,k;
    cin >> n >> k;
    assert((i64)n*k<=(i64)1e7);
    vector<int> a(n);
    for(int i = 0;i < n;i++){
        cin >> a[i];
    }
    
    const i64 inf = 1e18;
    vector<i64> dp(k + 1,-inf);
    vector<i64> ndp(k + 1,0);

    vector<i64> suff(k + 1,0);
    i64 ans = 0;

    for(int i = n - 1;i >= 0;i--){
        for(int j = 1;j <= k;j++){
           dp[j] = ndp[j] + a[i];
           dp[j] = max(dp[j],suff[j - 1]);
           suff[j] = max(suff[j],dp[j]);
        }
        ans = max(ans,dp[k]);
        ndp = dp;
    }
    cout << ans << '\n';
    return 0;
}
#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...