Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: nuxh
Problemset: ปริมาตรน้ำท่วม
Language: cpp
Time: 0.003 second
Submitted On: 2026-10-12 23:52:49
#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> leftmax(n);
leftmax[0] = h[0];
for(int i = 1 ; i < n ;i++){
leftmax[i] = max(leftmax[i-1],h[i]);
}
vector<int> rightmax(n);
rightmax[n-1] = h[n-1];
for(int i = n-2 ; i >= 0 ;i--){
rightmax[i] = max(rightmax[i+1],h[i]);
}
int total = 0;
for(int i = 0; i < n ;i++){
int level = min(leftmax[i],rightmax[i]);
int water = level - h[i];
total += water;
}
cout << total;
}