Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Copyright © 2017 Adán López Alatorre. All rights reserved.
- //
- #include <iostream>
- #include <vector>
- #include <string.h>
- #include <deque>
- #include <queue>
- #include <algorithm>
- #include <set>
- #include <map>
- #include <sstream>
- #include <stack>
- #include <iomanip>
- #include <fstream>
- #include <climits>
- #include <cmath>
- #define fi first
- #define se second
- #define FI first.first
- #define SE first.second
- #define TH second
- #define MAXN maxN
- using namespace std;
- typedef long long ll;
- typedef pair<int, int> ii;
- typedef pair<ii, int> iii;
- typedef pair<ll, ll> dd;
- typedef vector<int> vi;
- typedef set<ii>::iterator iter;
- const int maxN = 2e5 + 3, MOD = 1e9 + 7, AL = 10;
- int arr[maxN], n, act[maxN];
- ll tot = 0;
- int main(){
- ios::sync_with_stdio(false);
- cin.tie(0), cout.tie(0);
- cin >> n;
- for(int i = 0; i < n; i++){
- cin >> arr[i];
- }
- stack<int> st;
- int cur = 0;
- for(int i = 0; i < n; i++){
- st.push(i);
- while(cur < arr[i] + 1){
- cur++;
- act[st.top()]++;
- st.pop();
- }
- }
- for(int i = 1; i < n; i++){
- act[i] += act[i - 1];
- }
- for(int i = 0; i < n; i++){
- tot += act[i] - arr[i] - 1;
- }
- cout << tot << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement