#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define sp << " " <<
#define endl << '\n'
inline int val(set<long long> &st, long long val, bool flag){
set<long long>::iterator y;
if (flag)
y = st.lower_bound(val);
else
y = st.upper_bound(val);
if (y == st.end())
return -1;
return *y;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
long long int N;
cin >> N;
vector<long long int> lst(N);
for (int i = 0; i < N; i++){
cin >> lst[i];
}
long long int ret = 1;
set<long long int> st;
st.insert(lst[0]);
long long frst = -1;
for (int i = 1; i < N; i++){
if (lst[i] < lst[i - 1] || (lst[i - 1] != lst[i] && frst != val(st, lst[i], true))){
ret++;
frst = val(st, lst[i], false);
}
st.insert(lst[i]);
}
cout << ret;
}
# | 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... |