This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int inf = 1e15;
const int N = 1502;
array<int, 2> dp[N];
signed main() {
std::ios::sync_with_stdio(0);
std::cout.tie(0);
std::cin.tie(0);
int n; cin >> n;
vector<int> a(n + 1);
for(int i = 1; i <= n; i++) cin >> a[i];
dp[0] = {0, 0};
for(int i = 1; i <= n; i++) {
int mx = -1;
for(int j = 1; j <= i; j++) mx = max(mx, a[j]);
dp[i] = {inf, inf};
mx = a[i];
for(int j = i; j; j--) {
mx = max(mx, a[j]);
dp[i] = min(dp[i], {dp[j - 1][0] + (i - j + 1) * (dp[j - 1][1] + mx), dp[j - 1][1] + mx});
}
}
//for(int i = 1; i <= n; i++) cout << dp[i][0] << ' ' << dp[i][1] << '\n';
cout << dp[n][0] << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |