9931 2024. 03. 18 20:37:32 111 Hadjárat cpp17 Hibás válasz 50/100 100ms 15172 KiB
#include <bits/stdc++.h>
using namespace std;

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];
	}
	vector<multimap<int,int>>v(N+1);
	v[0].emplace(0,0);
	for(int i=0;i<N;i++){
		int l=0,h=i+1;
		while(l!=h){
			int m=(l+h)/2;
			auto it=v[m].lower_bound(r[i]);
			if(it==v[m].begin()){
				h=m;
				continue;
			}
			it--;
			if(it->second>=a[i]){
				h=m;
				continue;
			}
			l=m+1;
		}
		auto it=v[l].emplace(r[i],a[i]);
		if(it!=v[l].begin()&&it->second>=prev(it)->second){
			v[l].erase(it);
			continue;
		}
		it++;
		while(it!=v[l].end()&&it->second>=a[i]){
			it=v[l].erase(it);
		}
	}
	int ans=N;
	while(v[ans].empty())ans--;
	cout<<ans<<'\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/100
1 Hibás válasz 0/0 3ms 1696 KiB
2 Hibás válasz 0/0 46ms 7556 KiB
3 Részben helyes 2/4 3ms 2080 KiB
4 Részben helyes 2/4 3ms 2288 KiB
5 Részben helyes 2/4 3ms 2480 KiB
6 Részben helyes 2/4 3ms 2696 KiB
7 Részben helyes 2/4 3ms 2772 KiB
8 Részben helyes 2/4 3ms 2908 KiB
9 Részben helyes 2/4 3ms 3000 KiB
10 Részben helyes 2/4 3ms 3312 KiB
11 Részben helyes 2/4 6ms 3528 KiB
12 Részben helyes 2/4 9ms 4444 KiB
13 Részben helyes 3/6 9ms 4536 KiB
14 Részben helyes 3/6 17ms 5696 KiB
15 Részben helyes 3/6 27ms 6808 KiB
16 Részben helyes 3/6 46ms 9232 KiB
17 Részben helyes 3/6 57ms 10416 KiB
18 Részben helyes 3/6 67ms 11536 KiB
19 Részben helyes 3/6 79ms 13004 KiB
20 Részben helyes 3/6 100ms 15080 KiB
21 Részben helyes 3/6 100ms 15080 KiB
22 Részben helyes 3/6 100ms 15172 KiB