Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Nay-O

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-21 10:35:46

#include<bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    
    int n; cin >> n;
    int h[n];
    
    for(int i = 0; i < n; i++){
        cin >> h[i];
    }
    int ans[n];
    memset(ans, 0, 4*n);
    
    for(int i = 0; i < n; i++){
        int l = i+1;
        for(int j = i+1; j < n; j++){
            if(h[j] >= h[i]){
                break;
            }
            l++;
        }
        if(l != n){
            for(int j = i + 1; j < l; j++){
                ans[j] = max(ans[j], h[i]-h[j]);
            }
        }
        
        l = i - 1;
        for(int j = i-1; j >= 0; j--){
            if(h[j] >= h[i]){
                break;
            }
            l--;
        }
        if(l < 0){
            continue;
        }
        for(int j = i - 1; j > l; j--){
            ans[j] = max(ans[j], h[i]-h[j]);
        }
    }
    
    int sum = 0;
    for(int i = 0; i < n; i++){
        sum += ans[i];
    }
    
    cout << sum;
    
    return 0;
}