Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: theem1502
Problemset: ปริมาตรน้ำท่วม
Language: c
Time: 0.002 second
Submitted On: 2025-09-21 15:04:44
#include <stdio.h>
#include <stdlib.h>
int main() {
int num;
scanf("%d", &num);
int *thearray = malloc(num * sizeof(int));;
for (int i = 0; i < num; i++) {
scanf("%d", &thearray[i]);
}
int maxnum = 0;
for (int i = 0; i < num; i++) {
if (thearray[i] > maxnum) {
maxnum = thearray[i];
}
}
int leftpointer = 0;
int rightpointer = num-1;
int leftmax = thearray[leftpointer];
int rightmax = thearray[rightpointer];
int leftorright = 0;
int watersum = 0;
for (int i = 0; i < num - 2; i++) {
int currentiterator;
if (leftmax > rightmax) {
currentiterator = rightpointer -= 1;
leftorright = 1;
}
else {
currentiterator = leftpointer += 1;
leftorright = 0;
}
if (thearray[currentiterator] > leftmax && leftorright == 0) {
leftmax = thearray[currentiterator];
continue;
}
else if(thearray[currentiterator] > rightmax && leftorright == 1) {
rightmax = thearray[currentiterator];
continue;
}
if (leftorright == 0) {
watersum += leftmax - thearray[ currentiterator];
}
else {
watersum += rightmax - thearray[currentiterator];
}
}
printf("%d", watersum);
}