제출 #1299140

#제출 시각아이디문제언어결과실행 시간메모리
1299140Jawad_Akbar_JJPort Facility (JOI17_port_facility)C++20
0 / 100
0 ms332 KiB
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>

using namespace std;
int Mx[1<<21];

int main(){
	int n, Ans = 1, mod = 1e9 + 7;
	cin>>n;

	vector<pair<int, int>> vec;
	for (int i=1, a, b;i<=n;i++){
		cin>>a>>b;
		vec.push_back({a, b});
	}
	sort(begin(vec), end(vec));

	set<int> R;
	for (auto [l, r] : vec){
		auto u = R.upper_bound(r);

		if (u != begin(R))
			Mx[r] = *prev(u);
		if (Mx[r] > l)
			n--;
		if (Mx[r] != 0 and Mx[Mx[r]] > l)
			Ans = 0;
		R.insert(r);
	}

	while (n >= 30)
		Ans = (1LL * Ans + (1<<30)) % mod, n -= 30;
	cout<<1LL * Ans * (1<<n) % mod<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...