Submission #224276

#TimeUsernameProblemLanguageResultExecution timeMemory
224276osaaateiasavtnlPort Facility (JOI17_port_facility)C++14
22 / 100
6054 ms87480 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ii pair <int, int> #define app push_back #define all(a) a.begin(), a.end() #define bp __builtin_popcount #define ll long long #define mp make_pair #define f first #define s second #define Time (double)clock()/CLOCKS_PER_SEC const int N = 1e6 + 7, MOD = 1000 * 1000 * 1000 + 7; vector <int> g[N]; int l[N], r[N]; bool intr(int i, int j) { int a = max(l[i], l[j]); int b = min(r[i], r[j]); return a <= b; } bool in(int i, int j) { return l[j] <= l[i] && r[i] <= r[j]; } bool used[N], col[N]; void dfs(int u) { used[u] = 1; for (int v : g[u]) { if (!used[v]) { col[v] = col[u] ^ 1; dfs(v); } } } signed main() { #ifdef HOME freopen("input.txt", "r", stdin); #else #define endl '\n' ios_base::sync_with_stdio(0); cin.tie(0); #endif int n; cin >> n; for (int i = 1; i <= n; ++i) cin >> l[i] >> r[i]; vector <ii> ee; for (int i = 1; i <= n; ++i) { for (int j = i + 1; j <= n; ++j) { if (intr(i, j) && !in(i, j) && !in(j, i)) { g[i].app(j); g[j].app(i); ee.app(mp(i, j)); } } } int comp = 0; for (int i = 1; i <= n; ++i) { if (!used[i]) { dfs(i); ++comp; } } for (auto e : ee) { if (col[e.f] == col[e.s]) { cout << 0 << endl; return 0; } } int ans = 1; for (int i = 0; i < comp; ++i) ans = (ans << 1) % MOD; cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...