Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: Jokul
Problemset: ปริมาตรน้ำท่วม
Language: c
Time: 0.002 second
Submitted On: 2025-10-08 10:13:08
#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("\n%d",sum);
}