제출 #1303821

#제출 시각아이디문제언어결과실행 시간메모리
1303821nathlol2수열 (APIO14_sequence)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h> using namespace std; const int N = 111111; int n, k, pf[N], dp[N][202], r[N][202]; vector<int> ans; signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> k; for(int i = 1;i<=n;i++){ cin >> pf[i]; pf[i] += pf[i - 1]; } for(int s = 1;s<=k + 1;s++){ for(int i = 0;i<=n;i++){ for(int j = 0;j<i;j++){ if(dp[j][s - 1] + (pf[i] - pf[j]) * (pf[n] - pf[i]) >= dp[i][s]){ dp[i][s] = dp[j][s - 1] + (pf[i] - pf[j]) * (pf[n] - pf[i]); r[i][s] = j; } } } } int id = r[n][k + 1]; for(int i = k;i>0;i--){ ans.push_back(id); id = r[id][i]; } reverse(ans.begin(), ans.end()); cout << dp[n][k + 1] << '\n'; for(auto x : ans) cout << x << ' '; }
#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...