#include <bits/stdc++.h>
using namespace std;
struct BST {
multimap<int,int>m;
void insert(int key, int val) {
auto it=m.emplace(key,val);
if(it!=m.begin()&&it->second<=prev(it)->second){
m.erase(it);
return;
}
it++;
while(it!=m.end()&&val>=it->second){
it=m.erase(it);
}
}
int range_max(int kk, int k) {
auto it=m.upper_bound(k);
if(it==m.begin())return 0;
return prev(it)->second;
}
};
BST s[100001];
void insert(int i,int l,int r,int x,int y,int v){
for(;x<=100000;x+=x&-x){
s[x].insert(y,v);
}
}
int query_max(int i,int l,int r,int x0,int y0,int x1,int y1){
int ans=0;
for(int x=x1;x;x-=x&-x){
ans=max(ans,s[x].range_max(y0,y1));
}
return ans;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
#ifdef CB
freopen("be2.txt","r",stdin);
// freopen("out.txt","w",stdout);
#endif
int N;
cin>>N;
vector<int>r(N),a(N);
for(int i=0;i<N;i++){
cin>>r[i]>>a[i];
}
auto w=r;
sort(w.begin(),w.end());
for(int i=0;i<N;i++){
r[i]=lower_bound(w.begin(),w.end(),r[i])-w.begin()+1;
}
int ans=0;
for(int i=0;i<N;i++){
int v=query_max(0,1,100000,1,1,r[i]-1,a[i]-1)+1;
insert(0,1,100000,r[i],a[i],v);
ans=max(ans,v);
}
cout<<ans<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 35/100 | ||||||
1 | Hibás válasz | 0/0 | 7ms | 11252 KiB | |||
2 | Hibás válasz | 0/0 | 144ms | 23096 KiB | |||
3 | Részben helyes | 2/4 | 6ms | 11400 KiB | |||
4 | Részben helyes | 2/4 | 6ms | 11656 KiB | |||
5 | Részben helyes | 2/4 | 7ms | 11868 KiB | |||
6 | Részben helyes | 2/4 | 6ms | 12128 KiB | |||
7 | Részben helyes | 2/4 | 7ms | 12388 KiB | |||
8 | Részben helyes | 2/4 | 6ms | 12552 KiB | |||
9 | Részben helyes | 2/4 | 6ms | 12652 KiB | |||
10 | Részben helyes | 2/4 | 8ms | 13112 KiB | |||
11 | Részben helyes | 2/4 | 17ms | 14064 KiB | |||
12 | Részben helyes | 2/4 | 28ms | 15236 KiB | |||
13 | Részben helyes | 3/6 | 28ms | 15456 KiB | |||
14 | Részben helyes | 3/6 | 56ms | 17612 KiB | |||
15 | Részben helyes | 3/6 | 83ms | 20468 KiB | |||
16 | Részben helyes | 3/6 | 144ms | 25184 KiB | |||
17 | Részben helyes | 3/6 | 178ms | 27940 KiB | |||
18 | Időlimit túllépés | 0/6 | 215ms | 30604 KiB | |||
19 | Időlimit túllépés | 0/6 | 250ms | 32872 KiB | |||
20 | Időlimit túllépés | 0/6 | 270ms | 19460 KiB | |||
21 | Időlimit túllépés | 0/6 | 273ms | 19636 KiB | |||
22 | Időlimit túllépés | 0/6 | 257ms | 19076 KiB |