Submission #1329447

#TimeUsernameProblemLanguageResultExecution timeMemory
1329447adriines06Feast (NOI19_feast)C++20
59 / 100
176 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const long long INF=1e15+5;
void solve(){
    ll n,k; cin>>n>>k;
    vector<ll>v(n+1);
    for(ll i=1;i<=n;i++) cin>>v[i];

    vector<vector<ll>>dp(n+1,vector<ll>(k+1,-INF));
    for(int i=0;i<=n;i++) {
        dp[i][0]=0;
    }
    vector<ll>pr(n+1,0);
    for (int i=1;i<=n;i++) {
        pr[i]=pr[i-1]+v[i];
    }
    for(int j=1;j<=k;j++) {
        ll maxi=-INF;
        for(int i=1;i<=n;i++) {
            dp[i][j]=dp[i-1][j];
            
            maxi=max(maxi, dp[i-1][j-1]-pr[i-1]); 
            dp[i][j]=max(dp[i][j], pr[i]+maxi);   
        }
    }
    
    ll ans=0;
    for(int i=0;i<=k;i++) {
        ans=max(ans,dp[n][i]);
    }
    cout<<ans<<"\n";

}
int main(){
    ios::sync_with_stdio(0);
    cout.tie(0);
    cin.tie(0);
    solve();
}
#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...