#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n; cin >> n;
    vector<int> x(n);
    vector<int> pos(n+1);
    for(int i = 0; i < n; i++){
        cin >> x[i];
        pos[x[i]] = i;
    }
    multiset<int> s;
    vector<bool> d(n);
    int co = 0;
    for(int y = 1; y <= n; y++){
        if(d[pos[y]]) continue;
        co++;
        int l = n+1;
        for(int i = pos[y]; i < n; i++){
            auto it = s.upper_bound(l);
            if(l > x[i] && l != n+1){
                break;
            }else if(it != s.end()){
                if(*it < x[i]){
                    break;
                }
            }
            d[i] = true;
            s.insert(x[i]);
            l = x[i];
        }
    }
    cout << co << "\n";
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |