99312024-03-18 20:37:32111Hadjáratcpp17Hibás válasz 50/100100ms15172 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ÖsszpontTesztVerdiktIdőMemória
base50/100
1Hibás válasz0/03ms1696 KiB
2Hibás válasz0/046ms7556 KiB
3Részben helyes2/43ms2080 KiB
4Részben helyes2/43ms2288 KiB
5Részben helyes2/43ms2480 KiB
6Részben helyes2/43ms2696 KiB
7Részben helyes2/43ms2772 KiB
8Részben helyes2/43ms2908 KiB
9Részben helyes2/43ms3000 KiB
10Részben helyes2/43ms3312 KiB
11Részben helyes2/46ms3528 KiB
12Részben helyes2/49ms4444 KiB
13Részben helyes3/69ms4536 KiB
14Részben helyes3/617ms5696 KiB
15Részben helyes3/627ms6808 KiB
16Részben helyes3/646ms9232 KiB
17Részben helyes3/657ms10416 KiB
18Részben helyes3/667ms11536 KiB
19Részben helyes3/679ms13004 KiB
20Részben helyes3/6100ms15080 KiB
21Részben helyes3/6100ms15080 KiB
22Részben helyes3/6100ms15172 KiB