Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: sundopoz

Problemset: ปริมาตรน้ำท่วม

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-08 12:43:16

#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';
}