Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int MAXN = 1000005;
  5.  
  6. int in[MAXN], n, res[MAXN][2];
  7. deque<pair<int,int>> qu;
  8.  
  9. int main(){
  10.     ios::sync_with_stdio(0),cin.tie(0);
  11.     pair<int,int> tmp,tmpp;
  12.     int ret;
  13.     while (cin >> n) {
  14.         ret = 0;
  15.         for (int i = 1; i <= n; ++i) cin >> in[i];
  16.         qu.push_back(make_pair(0,0));
  17.         in[n+1] = 0;
  18.         for (int i = 1; i <= n+1; ++i) {
  19.             tmp = make_pair(in[i],i);
  20.             while(!qu.empty()) {
  21.                 tmpp = qu.back();
  22.                 if(tmp >= tmpp) {
  23.                     qu.push_back(tmp);
  24.                     res[i][1] = tmp.second - tmpp.second;
  25.                     break;
  26.                 }
  27.                 else {
  28.                     qu.pop_back();
  29.                     res[tmpp.second][0] = tmp.second - tmpp.second;
  30.                 }
  31.             }
  32.         }
  33.         for (int i = 1; i <= n; ++i) {
  34.             ret += min(res[i][0], res[i][1]);
  35.         }
  36.         cout << ret << '\n';
  37.     }
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement