Submission #1183957

#TimeUsernameProblemLanguageResultExecution timeMemory
1183957ezzzayPort Facility (JOI17_port_facility)C++20
0 / 100
4 ms7232 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...