Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: tl.cpp
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-15 11:32:48
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> h(n);
for (int i = 0; i < n; i++) cin >> h[i];
vector<int> l(n), r(n);
l[0] = h[0];
for (int i = 1; i < n; i++) {
l[i] = max(l[i - 1], h[i]);
}
r[n - 1] = h[n - 1];
for (int i = n - 2; i >= 0; i--) {
r[i] = max(r[i + 1], h[i]);
}
long long water = 0;
for (int i = 0; i < n; i++) {
int lv= min(l[i], r[i]);
if (lv > h[i]) water += lv - h[i];
}
cout << water;
}