제출 #857621

#제출 시각아이디문제언어결과실행 시간메모리
857621hungntFeast (NOI19_feast)C++17
45 / 100
81 ms132920 KiB
#include<bits/stdc++.h> using namespace std; const int N = 300005; int n, k; int a[N]; long long dp[2003][2003][2]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; int cntam = 0; long long s = 0; for(int i = 1; i <= n; i++) { cin >> a[i]; cntam += (a[i] < 0); s += a[i]; } if(!cntam) { cout << s; return 0; } if(cntam == 1) { long long l = 0, r = 0; int id = 1; while(a[id] >= 0) { l += id; id++; } id = n; while(a[id] >= 0) { r += id; id--; } if(k == 1) cout << max({l, r, s}); else cout << l + r; return 0; } long long ans=0; dp[0][0][1] = 0; dp[0][0][0] = 0; for(int i = 1; i <= n; i++) { dp[i][0][0] = 0; for(int j = 1; j <= k; j++) { dp[i][j][0] = max(dp[i - 1][j][1], dp[i - 1][j][0]); dp[i][j][1] = max(dp[i - 1][j][1], dp[i - 1][j - 1][0]) + a[i]; ans = max({ans, dp[i][j][0], dp[i][j][1]}); } } cout << ans; 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...