Submission #320719

#TimeUsernameProblemLanguageResultExecution timeMemory
320719saarang123Discharging (NOI20_discharging)C++14
9 / 100
137 ms24420 KiB
#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 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...