Submission

Status:

----------

Subtask/Task Score:

0/100

Score: 0

User: seakibidi

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-05 16:05:26

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    vector<int> hei(n);
    for(int i=0;i<n;i++){
        cin>>hei[i];
    }
    int left=0,right=n-1;
    int leftmax=0,rightmax=0;
    long long water;
    while(left<right){
        if(hei[left]<hei[right]){
            if(hei[left]>=hei[right]){
                leftmax=hei[left];
            }
            else{
                water+=leftmax-hei[left];
            }
            left++;
        }
        else{
            if(hei[right]>=rightmax){
                rightmax=hei[right];
            }
            else{
                water+=rightmax-hei[right];
            }
            right--;
        }
    }
    cout<<water;
    /*
    int n;
    cin>>n;
    int a[n],sumtow=0,maxtow=0;
    for(int i=0;i<n;i++){
        cin>>a[i];
        sumtow=sumtow+a[i];
        maxtow=max(maxtow,a[i]);
    }
    vector<bool> b(2,false);
    int sumtaw=0,m,k;
    for(int i=1;i<=maxtow;i++){
        for(int j=n-1;j>=0;j--){
            if(b[0]==true&&b[1]==true){
                b[0]=false;
                b[1]=false;
                break;
            }
            if(b[0]==false&&a[j]>=i){
                k=j;
                b[0]=true;
            }
            if(b[1]==false&&a[n-1-j]>=i){
                m=n-1-j;
                b[1]=true;
            }
        }
        sumtaw=sumtaw+k-m+1;
    }
    cout<<sumtaw-sumtow;
    */
}