Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: sundopoz
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-08 12:43:03
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<int> h(n);
int mxh = 0;
for (int i=0;i<n;i++){
cin>>h[i];
if (mxh<h[i]) mxh=h[i];
}
long long sum=0;
int cur = -1;
int lmxh=-1,rmxh=-1;
for (int i=0;i<n;i++){
if (h[i]<cur){
sum+=cur-h[i];
} else if (h[i]>cur){
cur=h[i];
if (cur == mxh) {
lmxh=i;
break;
}
}
}
cur=0;
for (int i=n-1;i>=0;i--){
if (h[i]<cur){
sum+=cur-h[i];
} else if (h[i]>cur){
cur = h[i];
if (cur == mxh) {
rmxh=i;
break;
}
}
}
for (int i=lmxh;i<=rmxh;i++){
sum+=mxh-h[i];
}
cout<<sum<<'\n';
}