Submission #320751

#TimeUsernameProblemLanguageResultExecution timeMemory
320751saarang123Discharging (NOI20_discharging)C++14
36 / 100
123 ms17508 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int inf = 1e15;
const int N = 1502;
int 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];
    for(int i = n; i; i--) {
        dp[i] = inf;
        int mx = 0;
        for(int j = i; j <= n; j++) {
            mx = max(mx, a[j]);
            dp[i] = min(dp[i], dp[j + 1] + (n - i + 1) * mx);
            //if u choose it, it gets added to all (n - i + 1) customers after
            //eliminating the need for end_time :D
        }
    }
    cout << dp[1] << '\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...