Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Jibhong

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-06 20:05:55

#include <bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int n;
    cin>>n;
    vector<int>vec(n);
    int mx=-1;
    int mx_idx=-1;
    for(int i=0;i<n;++i){
        cin>>vec[i];
        if(vec[i]>mx){
            mx=vec[i];
            mx_idx=i;
        }
    }
    int out=0;
    // left
    int sec,sec_idx;
    while(mx_idx!=0){
        sec=-1;
        sec_idx=-1;
        for(int i=mx_idx-1;i>=0;--i){
            if(vec[i]>sec){
                sec=vec[i];
                sec_idx=i;
            }
        }
        out+=(mx_idx-sec_idx-1)*vec[sec_idx];
        for(int i=mx_idx-1;i>sec_idx;--i){
            out-=vec[i];
        }
        mx=sec;
        mx_idx=sec_idx;
    }

    //right
    mx=-1;
    mx_idx=-1;
    for(int i=0;i<n;++i){
        if(vec[i]>mx){
            mx=vec[i];
            mx_idx=i;
        }
    }
    while(mx_idx!=n-1){
        sec=-1;
        sec_idx=-1;
        for(int i=mx_idx+1;i<n;++i){
            if(vec[i]>sec){
                sec=vec[i];
                sec_idx=i;
            }
        }
        out+=(sec_idx-mx_idx-1)*vec[sec_idx];
        for(int i=mx_idx+1;i<sec_idx;++i){
            out-=vec[i];
        }
        mx=sec;
        mx_idx=sec_idx;
    }

    cout<<out;
}