Submission

Status:
PPPPP-----

Score: 50

User: Cmoss9

Problemset: Fool's Compensation

Language: cpp

Time: 0.003 second

Submitted On: 2025-03-17 23:19:39

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n;
    cin >> n;
    vector<int> sales(n), compensation(n, 1000);

    for (int i = 0; i < n; i++) {
        cin >> sales[i];
    }

    // สแกนจากซ้ายไปขวา
    for (int i = 1; i < n; i++) {
        if (sales[i] > sales[i - 1]) {
            compensation[i] = compensation[i - 1] + 1000;
        }
    }

    // สแกนจากขวาไปซ้าย
    for (int i = n - 2; i >= 0; i--) {
        if (sales[i] > sales[i + 1]) {
            compensation[i] = max(compensation[i], compensation[i + 1] + 1000);
        }
    }

    for (int i = 0; i < n; i++) {
        if (sales[i] == sales[i + 1]) {
            compensation[i + 1] = compensation[i];
        }
    }

    int sum = accumulate(compensation.begin(), compensation.end(), 0);
    cout << sum;
}