Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int MAXN = 1000005;
- int in[MAXN], n, res[MAXN][2];
- deque<pair<int,int>> qu;
- int main(){
- ios::sync_with_stdio(0),cin.tie(0);
- pair<int,int> tmp,tmpp;
- int ret;
- while (cin >> n) {
- ret = 0;
- for (int i = 1; i <= n; ++i) cin >> in[i];
- qu.push_back(make_pair(0,0));
- in[n+1] = 0;
- for (int i = 1; i <= n+1; ++i) {
- tmp = make_pair(in[i],i);
- while(!qu.empty()) {
- tmpp = qu.back();
- if(tmp >= tmpp) {
- qu.push_back(tmp);
- res[i][1] = tmp.second - tmpp.second;
- break;
- }
- else {
- qu.pop_back();
- res[tmpp.second][0] = tmp.second - tmpp.second;
- }
- }
- }
- for (int i = 1; i <= n; ++i) {
- ret += min(res[i][0], res[i][1]);
- }
- cout << ret << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement