#include "bits/stdc++.h"
using namespace std;
#define pb push_back
#define ff first
#define ss second
const int N=3e5+6;
int l[N];
int col[N];
int r[N];
vector<int>v[N];
int ans=1;
void dfs(int a){
for(auto b:v[a]){
if(col[b]){
if(col[b]==col[a])ans=0;
}
else{
col[b]=3-col[a];
dfs(b);
}
}
}
const int mod=1e9+7;
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>l[i]>>r[i];
}
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(i==j)continue;
if(l[i]<l[j] and l[j] <r[i] and r[j]>r[i]){
v[i].pb(j);
v[j].pb(i);
}
}
}
for(int i=1;i<=n;i++){
if(col[i]==0){
col[i]=1;
dfs(i);
ans*=2;
ans%=mod;
}
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |