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