제출 #1226404

#제출 시각아이디문제언어결과실행 시간메모리
1226404PenguinsAreCutePort Facility (JOI17_port_facility)C++17
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int a[n], b[n], pref[2*n+1], cur[2*n]; bool vis[n]; vector<int> adj[n]; memset(pref,0,sizeof(pref)); for(int i=0;i<n;i++) { cin >> a[i] >> b[i]; pref[--a[i]]++; pref[b[i]]--; } partial_sum(pref,pref+2*n,pref); for(int i=0;i<2*n;i++) if(pref[i] >= 3) { cout << 0; return 0; } memset(cur,-1,sizeof(cur)); for(int i=0;i<n;i++) for(int j=a[i];j<b[i];j++) if(cur[j] == -1) cur[j] = i; else { adj[cur[j]].push_back(i); adj[i].push_back(cur[j]); } memset(vis,0,sizeof(vis)); int ans = 1; for(int i=0;i<n;i++) if(!vis[i]) { queue<int> q; q.push(i); vis[i] = 1; ans = (2 * ans) % (1'000'000'007); while(q.size()) { int x = q.front(); q.pop(); for(auto y: adj[x]) if(!vis[y]) { vis[y] = 1; q.push(y); } } } 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...