9928 2024. 03. 18 18:30:32 111 Hadjárat cpp17 Futási hiba 0/100 61ms 44012 KiB
#include <bits/stdc++.h>
using namespace std;

struct BST {
	multimap<int,int>m;

	bool insert(int key, int val) {
		auto it=m.emplace(key,val);
		if(it==m.begin())it++;
		while(it!=m.end()&&it->second<prev(it)->second){
			it=m.erase(it);
		}
		if(it!=m.end())
		while(next(it)!=m.end()&&it->second>next(it)->second){
			it=prev(m.erase(next(it)));
		}
	}

	int range_max(int, int k) {
		auto it=m.upper_bound(k);
		if(it==m.begin())return 0;
		return prev(it)->second;
	}
};

BST s[400001];

void insert(int i,int l,int r,int x,int y,int v){
	if(l>x||r<x){
		return;
	}
	s[i].insert(y,v);
	if(l==r){
		return;
	}
	insert(i*2+1,l,(l+r)/2,x,y,v);
	insert(i*2+2,(l+r)/2+1,r,x,y,v);
}

int query_max(int i,int l,int r,int x0,int y0,int x1,int y1){
	if(l>x1||r<x0){
		return 0;
	}
	if(l>=x0&&r<=x1){
		return s[i].range_max(y0,y1);
	}
	int ans1=query_max(i*2+1,l,(l+r)/2,x0,y0,x1,y1);
	int ans2=query_max(i*2+2,(l+r)/2+1,r,x0,y0,x1,y1);
	return max(ans1,ans2);
}

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 0/100
1 Futási hiba 0/0 14ms 39648 KiB
2 Futási hiba 0/0 41ms 41052 KiB
3 Futási hiba 0/4 14ms 40008 KiB
4 Futási hiba 0/4 17ms 40188 KiB
5 Futási hiba 0/4 14ms 40444 KiB
6 Futási hiba 0/4 17ms 40660 KiB
7 Futási hiba 0/4 14ms 40612 KiB
8 Futási hiba 0/4 14ms 40820 KiB
9 Futási hiba 0/4 14ms 40976 KiB
10 Futási hiba 0/4 14ms 41080 KiB
11 Futási hiba 0/4 17ms 41368 KiB
12 Futási hiba 0/4 18ms 41536 KiB
13 Futási hiba 0/6 18ms 41264 KiB
14 Futási hiba 0/6 23ms 41528 KiB
15 Futási hiba 0/6 28ms 42040 KiB
16 Futási hiba 0/6 37ms 42464 KiB
17 Futási hiba 0/6 41ms 42964 KiB
18 Futási hiba 0/6 46ms 43300 KiB
19 Futási hiba 0/6 52ms 43528 KiB
20 Futási hiba 0/6 61ms 43976 KiB
21 Futási hiba 0/6 61ms 43900 KiB
22 Futási hiba 0/6 61ms 44012 KiB