Submission #1357903

#TimeUsernameProblemLanguageResultExecution timeMemory
1357903nathlol2Money (IZhO17_money)C++20
0 / 100
0 ms344 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], 0});
        --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;
        }
        if(l != cur[0]) s.insert({l, cur[0]});
        for(int j = 0;j<cur.size() - 1;j++) s.insert({cur[j], cur[j + 1]});
        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...