Submission

Status:
PPPPP-PP-P

Score: 80

User: SnowAveNode

Problemset: Fool's Compensation

Language: cpp

Time: 0.006 second

Submitted On: 2025-03-24 09:10:22

#include<bits/stdc++.h>
using namespace std;
long long calculate_min_payment(int N, const vector<int>& sales) {
    vector<long long> pay(N, 1000);
    for (int i = 1; i < N; ++i) {
        if (sales[i] > sales[i - 1]) {
            pay[i] = pay[i - 1] + 1000;
        }
    }
    for (int i = N - 2; i >= 0; --i) {
        if (sales[i] > sales[i + 1]) {
            pay[i] = max(pay[i], pay[i + 1] + 1000);
        }
    }
    long long total = 0;
    for (int i = 0; i < N; ++i) {
        total += pay[i];
    }
    return total;
}

int main() {
    int N; cin >> N;
    vector<int> sales(N);
    for (int i = 0; i < N; ++i) {
        cin >> sales[i];
    }
    long long result = calculate_min_payment(N, sales);
    cout << result << endl;
}