Submission #1255175

#TimeUsernameProblemLanguageResultExecution timeMemory
1255175g4yuhgPort Facility (JOI17_port_facility)C++20
22 / 100
1794 ms1114112 KiB
//Huyduocdithitp #include <bits/stdc++.h> typedef int ll; #define pii pair<ll, ll> #define fi first #define se second #define TASK "mansion" #define start if(fopen(TASK".in","r")){freopen(TASK".in","r",stdin);freopen(TASK".out","w",stdout);} #define faster ios_base::sync_with_stdio(false);cin.tie(NULL); #define N 1000006 #define endl '\n' using namespace std; bool ghuy4g; const ll mod = 1e9 + 7; void add(ll &u, ll v) { u += v; if (u >= mod) { u -= mod; } } ll n, idx[N * 2]; pii a[N]; bool vst[N], d[N]; vector<ll> adj[N]; void dfs(ll u, ll parent) { vst[u] = 1; for (auto v : adj[u]) { if (v == parent) continue; if (vst[v]) { if (d[v] == d[u]) { cout << 0; exit(0); } continue; } d[v] = 1 - d[u]; dfs(v, u); } } bool cmp(pii a, pii b) { return a.se < b.se; } void sub2() { sort(a + 1, a + 1 + n, cmp); set<ll> s; for (int i = 1; i <= n; i ++) { s.insert(a[i].fi); idx[a[i].fi] = i; //cout << i << " " << a[i].fi << " " << a[i].se << endl; } for (int i = 1; i <= n; i ++) { s.erase(a[i].fi); auto it = s.lower_bound(a[i].fi); while (it != s.end()) { if (*it > a[i].se) break; //cout << i << " fi " << *it << endl; adj[i].push_back(idx[*it]); adj[idx[*it]].push_back(i); //cout << i << " " << idx[*it] << endl; it ++ ; } } ll tplt = 0, ans = 1; for (int i = 1; i <= n; i ++) { if (vst[i] == 0) { dfs(i, i); tplt ++ ; ans = ans * 2 % mod; } } //cout << "tplt " << tplt << endl; cout << ans << endl; } bool klinh; signed main(void) { faster; cin >> n; for (int i = 1; i <= n; i ++) { cin >> a[i].fi >> a[i].se; } //sort(a + 1, a + 1 + n); sub2(); cerr << fabs(&klinh - &ghuy4g) / 1048576.0; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...