Submission #1363824

#TimeUsernameProblemLanguageResultExecution timeMemory
1363824Jawad_Akbar_JJPort Facility (JOI17_port_facility)C++20
0 / 100
0 ms344 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(){
	int n, Ans = 1;
	cin>>n;

	vector<pair<int, int>> v(n);
	vector<int> v1, v2;

	for (auto &[i, j] : v)
		cin>>i>>j;

	sort(begin(v), end(v));

	for (auto [l, r] : v){
		while (v1.size() > 0 and v1.back() < l)
			v1.pop_back();
		while (v2.size() > 0 and v2.back() < l)
			v2.pop_back();

		int X = 0;
		if (v1.size() == 0 or r < v1.back())
			X |= 1;
		if (v2.size() == 0 or r < v2.back())
			X |= 2;

		if (X == 3)
			Ans = Ans * 2, Ans -= (Ans > 1000000007) * 1000000007;
		if (X & 1)
			v1.push_back(r);
		else if (X & 2)
			v2.push_back(r);
		else
			return cout<<0, 0;
	}

	cout<<Ans<<endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...