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);

}