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;

}