Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: seakibidi
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-05 16:05:26
#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
vector<int> hei(n);
for(int i=0;i<n;i++){
cin>>hei[i];
}
int left=0,right=n-1;
int leftmax=0,rightmax=0;
long long water;
while(left<right){
if(hei[left]<hei[right]){
if(hei[left]>=hei[right]){
leftmax=hei[left];
}
else{
water+=leftmax-hei[left];
}
left++;
}
else{
if(hei[right]>=rightmax){
rightmax=hei[right];
}
else{
water+=rightmax-hei[right];
}
right--;
}
}
cout<<water;
/*
int n;
cin>>n;
int a[n],sumtow=0,maxtow=0;
for(int i=0;i<n;i++){
cin>>a[i];
sumtow=sumtow+a[i];
maxtow=max(maxtow,a[i]);
}
vector<bool> b(2,false);
int sumtaw=0,m,k;
for(int i=1;i<=maxtow;i++){
for(int j=n-1;j>=0;j--){
if(b[0]==true&&b[1]==true){
b[0]=false;
b[1]=false;
break;
}
if(b[0]==false&&a[j]>=i){
k=j;
b[0]=true;
}
if(b[1]==false&&a[n-1-j]>=i){
m=n-1-j;
b[1]=true;
}
}
sumtaw=sumtaw+k-m+1;
}
cout<<sumtaw-sumtow;
*/
}