Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: patsa_v
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-15 21:33:14
#include <bits/stdc++.h>
using namespace std;
int flood(vector<int> v){
int sum = 0;
int n = v.size();
vector<int> left(n);
vector<int> right(n);
left[0] = v[0];
for(int i = 1;i<n;i++){
left[i] = max(v[i],left[i-1]);
}
right[n-1] = v[n-1];
for(int i=n-2;i>=0;i--){
right[i] = max(v[i],right[i+1]);
}
for(int i = 1;i<n-1;i++){
int minof2 = min(left[i],right[i]);
sum += minof2 - v[i];
}
return sum;
}
int main(){
int n;
cin >> n;
vector<int> v;
for(int i = 0;i<n;i++){
int t;
cin >> t;
v.push_back(t);
}
cout << flood(v);
return 0;
}
/*
6
6 1 3 0 8 2
3
1 0 1
*/