Submission #1197409

#TimeUsernameProblemLanguageResultExecution timeMemory
1197409og_matveychick1Port Facility (JOI17_port_facility)C++20
22 / 100
6097 ms56388 KiB
#include "bits/stdc++.h" using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef vector<ll> vll; const ll N = 1e6 + 5, mod = 1e9 + 7; ll n, l[N], r[N], used[N], fl; vll g[N]; void dfs(ll v) { for (auto x: g[v]) { if (used[x]) { if (used[x] == used[v]) fl = 0; } else used[x] = 3 - used[v], dfs(x); } } signed main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin >> n; for (ll i = 0; i < n; i++) cin >> l[i] >> r[i]; for (ll i = 0; i < n; i++) { for (ll j = i + 1; j < n; j++) { if (l[i] < l[j]) { if (r[i] > l[j] && r[i] < r[j]) g[i].push_back(j), g[j].push_back(i); } else { if (r[j] > l[i] && r[j] < r[i]) g[i].push_back(j), g[j].push_back(i); } } } ll ans = 1; for (ll i = 0; i < n; i++) { if (used[i]) continue; used[i] = 1; fl = 1; dfs(i); ans = (ans * fl * 2) % 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...