V11WATER - Nước đọng
Tác giả: RR
Ngôn ngữ: C++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <string>
#include <deque>
#include <complex>
#define FOR(i,a,b) for(int i=(a),_b=(b); i<=_b; i++)
#define FORD(i,a,b) for(int i=(a),_b=(b); i>=_b; i--)
#define REP(i,a) for(int i=0,_a=(a); i<_a; i++)
#define ll long long
#define F first
#define S second
#define PB push_back
#define MP make_pair
using namespace std;
const double PI = acos(-1.0);
int n, h[100111], r[100111], l[100111];
int main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
scanf("%d", &n);
FOR(i,1,n) scanf("%d", &h[i]);
FOR(i,1,n) l[i] = max(l[i-1], h[i]);
FORD(i,n,1) r[i] = max(r[i+1], h[i]);
ll res = 0;
FOR(i,1,n)
res += min(l[i], r[i]) - h[i];
cout << res;
return 0;
}