Submission #1357923

#TimeUsernameProblemLanguageResultExecution timeMemory
1357923nathlol2Money (IZhO17_money)C++20
100 / 100
853 ms51296 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int n, ans, a[N];
set<pair<int, int>> s;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n;
    for(int i = 1;i<=n;i++) cin >> a[i];
    s.insert({0, 1e9});
    for(int i = 1;i<=n;i++){
        vector<int> cur = {a[i]};
        auto it = s.upper_bound({a[i], INT_MAX});
        --it;
        int l = it->first, r = it->second;
        while(i + 1 <= n && a[i + 1] >= a[i] && a[i + 1] <= r){
            cur.push_back(a[i + 1]);
            ++i;
        }
        s.erase({l, r});
        for(int j = 0;j<cur.size() - 1;j++) if(cur[j] != cur[j + 1]) s.insert({cur[j], cur[j + 1]});
        if(l != cur[0]) s.insert({l, cur[0]});
        if(cur.back() != r) s.insert({cur.back(), r});
        ++ans;
    }
    cout << ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...