Submission #335746

#TimeUsernameProblemLanguageResultExecution timeMemory
335746mihai145Discharging (NOI20_discharging)C++14
36 / 100
1092 ms18028 KiB
#include <iostream>

using namespace std;

const long long INF = (1LL << 60);
const int NMAX = 1e6;

int N;
long long T[NMAX + 5], dp[NMAX + 5];

int main()
{
    // The following line disables syncing between cin/scanf and cout/printf.
    // It makes input faster, but you must not use functions from <cstdio> (e.g. scanf/printf) directly.
    // This line must be executed before any use of cin/cout.
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    // Your code goes here ...
    // (You can now read input and write output normally using cin/cout.)

    cin >> N;

    for(int i = 1; i <= N; i++)
        cin >> T[i];

    dp[N + 1] = 0;

    for(int i = N; i >= 1; i--)
    {
        dp[i] = INF;

        long long maxi = 0;
        for(int j = i; j <= N; j++)
        {
            maxi = max(maxi, T[j]);
            dp[i] = min(dp[i], maxi * (N - i + 1) + dp[j + 1]);
        }
    }

    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...