Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: chokun

Problemset: ปริมาตรน้ำท่วม

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-14 08:50:40

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

int main() {
    int n;
    cin >> n;

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

    vector<int> left_max(n), right_max(n);

    left_max[0] = h[0];
    for (int i = 1; i < n; ++i) {
        left_max[i] = max(left_max[i - 1], h[i]);
    }

    right_max[n - 1] = h[n - 1];
    for (int i = n - 2; i >= 0; --i) {
        right_max[i] = max(right_max[i + 1], h[i]);
    }

    long long total_water = 0;
    for (int i = 0; i < n; ++i) {
        total_water += min(left_max[i], right_max[i]) - h[i];
    }
    cout << total_water;
}