Submission
Status:
PPPP-PPPPP
Subtask/Task Score:
90/100
Score: 90
User: Zonezonee
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.004 second
Submitted On: 2025-10-13 12:02:42
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
int h[n];
for(auto &i : h) cin >> i;
long long res = 0;
for(int i = 0; i < n; ++i){
int j = i+1;
int added = 0, sum = 0;
while(j < n && h[i] > h[j]){
if(min(h[i], h[j])*(j-i-1)-sum > 0){
res -= added;
res += min(h[i], h[j])*(j-i-1)-sum;
added = min(h[i], h[j])*(j-i-1)-sum;
}
sum += h[j];
j++;
}
if(j < n){
if(min(h[i], h[j])*(j-i-1)-sum > 0){
res -= added;
res += min(h[i], h[j])*(j-i-1)-sum;
}
}
i = j-1;
}
cout << res << '\n';
}