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;
}