Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Apimuk

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-09-23 21:51:25

#include <iostream>
#include <stack>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
#include <iomanip>
#include <sstream>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> num(n,0);
	int ans =0;
	for (int i = 0; i < n; i++) {
		cin >> num[i];
	}
	vector<int> leftmax(n, 0);
	vector<int> rightmax(n, 0);
	leftmax[0] = num[0];
	rightmax[n - 1] = num[n - 1];
	for (int i = 1; i < n; i++) {
		leftmax[i] = max(num[i], leftmax[i-1]);
	}
	for (int i = n - 2; i>=0; i--) {
		rightmax[i] = max(num[i], rightmax[i+1]);
	}
	for (int i = 0; i < n; i++) {
		ans += min(rightmax[i], leftmax[i]) - num[i];
	}
	cout << ans;
}