제출 #109978

#제출 시각아이디문제언어결과실행 시간메모리
109978someone_aaPipes (CEOI15_pipes)C++17
0 / 100
5100 ms7240 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair using namespace std; const int maxn = 100100; vector<int>g[maxn]; int n, m; int tin[maxn], low[maxn]; int uparent[maxn][2]; int usize[maxn][2]; int root(int x, int d) { while(x != uparent[x][d]) { x = uparent[x][d]; } return x; } void unite(int x, int y, int d) { x = root(x, d); y = root(y, d); if(x == y) return; uparent[x][d] = y; usize[y][d] += usize[x][d]; } int br; bool visited[maxn]; set<pair<int,int> > result; void dfs(int node, int p) { if(visited[node]) return; tin[node] = br++; low[node] = tin[node]; visited[node] = true; for(int i:g[node]) { if(i == p) continue; if(visited[i]) { low[node] = min(low[node], tin[i]); } else { dfs(i, node); low[node] = min(low[node], low[i]); if(low[i] > tin[node]) { result.insert(mp(min(i, node), max(i, node))); } } } } int main() { cin>>n>>m; int u, v; for(int i=0;i<n;i++) { usize[i][0] = usize[i][1] = 1; uparent[i][0] = uparent[i][1] = i; } for(int i=0;i<m;i++) { cin>>u>>v; u--; v--; if(root(u, 1) == root(v, 1)) continue; if(root(u,0) != root(v,0)) { unite(u, v, 0); g[u].pb(v); g[v].pb(u); } else { unite(u, v, 1); g[u].pb(v); g[v].pb(u); } } for(int i=0;i<n;i++) { if(!visited[i]) { dfs(i, -1); } } for(auto i:result) { cout<<i.first+1<<" "<<i.second+1<<"\n"; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...