Submission #991312

#TimeUsernameProblemLanguageResultExecution timeMemory
991312vjudge1Feast (NOI19_feast)C++17
18 / 100
1100 ms7388 KiB
#include<bits/stdc++.h> #include<ext/numeric> #include <ext/pb_ds/assoc_container.hpp> // Common file #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update #define Fast ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr) using namespace std; using namespace __gnu_cxx; using namespace __gnu_pbds; #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() #define int long long template<class T> using ordered_set = tree<T, null_type , less<T> ,rb_tree_tag , tree_order_statistics_node_update> ; typedef long long ll; const int N=3e5+3,LG=__lg(N)+2,M=21,MOD=998244353,inf=1e15; int dp[2][N]; void solve() { int n,k; cin>>n>>k; vector<int>v(n+3); for (int i = 2; i <=n+1 ; ++i) { cin>>v[i]; v[i]+=v[i-1]; } for (int i = 1; i <=k ; ++i) { int best=-inf; for (int r = 2; r<=n+1 ; ++r) { dp[i&1][r]=(best=max(best,dp[(i-1)&1][r-2]-v[r-1]))+v[r]; } } cout<<*max_element(dp[k&1],dp[k&1]+N)<<'\n'; } signed main() { Fast; int tc = 1; //cin >> tc; for (int i = 1; i <= tc; ++i) { // cout<<"Case #"<<i<<": "; 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...