9930 2024. 03. 18 18:38:49 111 Hadjárat cpp17 Hibás válasz 35/100 273ms 32872 KiB
#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