Submission #1177071

#TimeUsernameProblemLanguageResultExecution timeMemory
1177071ASN49KPort Facility (JOI17_port_facility)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
using namespace std;
using i64=long long;
#define int long long
mt19937_64 rng(69);
const int mod=1e9+7;
signed main()
{
    int n;
    cin>>n;
    int rez=1;
    vector<i64>a(2*n+1),cnt(2*n+1,0);
    for(int i=1;i<=n;i++)
    {
        int l,r;
        cin>>l>>r;
        cnt[l]++;
        cnt[r]--;
        a[l]=a[r]=rng();
    }
    i64 cash=0;
    set<int>mp;
    mp.insert(0);
    
    for(int i=1;i<=2*n;i++)
    {
    cnt[i]+=cnt[i-1];
    rez*=(cnt[i]<=2);
        cash^=a[i];
        if(mp.count(cash))
        {
             rez*=2;
             rez%=mod;
        }
        mp.insert(cash);
    }
    cout<<rez;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...