#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define g0(x) get<0>(x)
#define g1(x) get<1>(x)
#define g2(x) get<2>(x)
#define pb push_back
#define int long long
#define f first
#define s second
#define pll pair<long long, long long>
signed main(){
int n;cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
set<int> s;
int ans=0;
for(int i=0;i<n;){
int lim=1e9;
int j=i+1;
auto it=s.upper_bound(a[i]);
if(it!=s.end())lim=*it;
while(j<n and a[j]<=lim and a[j] >=a[j-1]){
j++;
}
for(int k=i;k<j;k++){
s.insert(a[k]);
}
i=j;
ans++;
}
cout<<ans;
}
# | 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... |