Submission

Status:

PPPP-PPPPP

Subtask/Task Score:

90/100

Score: 90

User: Jokul

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

Language: c

Time: 0.002 second

Submitted On: 2025-10-08 10:13:45

#include<stdio.h>
int main(){
    int n,max1=0,left=0,left2=0,right,right2=0,sum=0,save=0,save1=0,save2,count=0;
    scanf("%d",&n);
    int h[n+2];
    h[0]=0;
    h[n+1]=0;
    for(int i=1;i<=n;i++)
    {
     scanf("%d",&h[i]);
    if(max1<=h[i])
        {
            max1=h[i];
            save=i;
        }
    }
//////////////////////////////////
    save2=save;
    for(int i=1;i<save;i++)
    {
        if(h[i]>h[i-1]&&h[i]>h[i+1]&&h[i]>left)
        {
            left=h[i];
            left2=h[save1];
            save1=i;
        }
        else if(i>save1&&left>0){
            sum=sum+(left-h[i]);
        }
    }
    ///////////////////////////////////////
    right=0;
    for(int i=save+1;i<=n;i++)
    {
         if(h[i]>h[i-1]&&h[i]>h[i+1])
        {
            right=h[i];
            save2=i;
            break;
        }
    }
    for(int i=save+1;i<=n;i++)
    {
        if(i==n&&h[i]<h[i-1])
        {
            right=0;
        }
        if(h[i]>h[i-1]&&h[i]>h[i+1]&&save2!=i)
        {
            right=h[i];
            right2=h[save2];
            save2=i;
        }
        else if(right>0)
        {
            sum=sum+(right-h[i]);
        }
    }
    //////////////////////////////
    printf("%d",sum);
}