#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int calWater(vector<int> &buildingHeights) {
if(buildingHeights.empty()) return 0;
int n = buildingHeights.size();
vector<int> leftMax(n), rightMax(n);
leftMax[0] = buildingHeights[0];
for(int i=1; i<n; i++) {
leftMax[i] = max(leftMax[i-1], buildingHeights[i]);
}
rightMax[n-1] = buildingHeights[n-1];
for(int i=n-2; i>=0; i--) {
rightMax[i] = max(rightMax[i+1], buildingHeights[i]);
}
int ans = 0;
for(int i=1; i<n-1; i++) {
int curr = min(leftMax[i-1], rightMax[i+1]);
ans += max(0, curr - buildingHeights[i]);
}
return ans;
}
int main() {
int n;
cin >> n;
vector<int> v;
for(int i=0; i<n; i++) {
int var;
cin >> var;
v.push_back(var);
}
cout << calWater(v) << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGNhbFdhdGVyKHZlY3RvcjxpbnQ+ICZidWlsZGluZ0hlaWdodHMpIHsKICAgIGlmKGJ1aWxkaW5nSGVpZ2h0cy5lbXB0eSgpKSByZXR1cm4gMDsKICAgIGludCBuID0gYnVpbGRpbmdIZWlnaHRzLnNpemUoKTsKICAgIHZlY3RvcjxpbnQ+IGxlZnRNYXgobiksIHJpZ2h0TWF4KG4pOwogICAgbGVmdE1heFswXSA9IGJ1aWxkaW5nSGVpZ2h0c1swXTsKICAgIGZvcihpbnQgaT0xOyBpPG47IGkrKykgewogICAgICAgIGxlZnRNYXhbaV0gPSBtYXgobGVmdE1heFtpLTFdLCBidWlsZGluZ0hlaWdodHNbaV0pOwogICAgfQogICAgcmlnaHRNYXhbbi0xXSA9IGJ1aWxkaW5nSGVpZ2h0c1tuLTFdOwogICAgZm9yKGludCBpPW4tMjsgaT49MDsgaS0tKSB7CiAgICAgICAgcmlnaHRNYXhbaV0gPSBtYXgocmlnaHRNYXhbaSsxXSwgYnVpbGRpbmdIZWlnaHRzW2ldKTsKICAgIH0KICAgIGludCBhbnMgPSAwOwogICAgZm9yKGludCBpPTE7IGk8bi0xOyBpKyspIHsKICAgICAgICBpbnQgY3VyciA9IG1pbihsZWZ0TWF4W2ktMV0sIHJpZ2h0TWF4W2krMV0pOwogICAgICAgIGFucyArPSBtYXgoMCwgY3VyciAtIGJ1aWxkaW5nSGVpZ2h0c1tpXSk7CiAgICB9CiAgICByZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpIHsKCWludCBuOwoJY2luID4+IG47Cgl2ZWN0b3I8aW50PiB2OwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKSB7CgkJaW50IHZhcjsKCQljaW4gPj4gdmFyOwoJCXYucHVzaF9iYWNrKHZhcik7Cgl9Cgljb3V0IDw8IGNhbFdhdGVyKHYpIDw8ICJcbiI7CglyZXR1cm4gMDsKfQ==