#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#define all(x) x.begin(),x.end()
using namespace std;
int n,ans=1,a[1000000+36],id[1000000+36];
set<pair<int,int>>S;
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
id[i]=i;
}
S.insert({a[1],id[1]});
for(int i=2;i<=n;++i){
auto it=S.find({a[i-1],id[i-1]});
if((*it).first>a[i]){
++ans;
S.insert({a[i],id[i]});
continue;
}
++it;
if(it==S.end()){
S.insert({a[i],id[i]});
continue;
}
if((*it).first<a[i])
++ans;
else if((*it).first==a[i])
id[i]=(*it).second-1;
S.insert({a[i],id[i]});
}
cout<<ans;
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... |