Submission #527153

#TimeUsernameProblemLanguageResultExecution timeMemory
527153chicken337Pipes (CEOI15_pipes)C++14
10 / 100
1819 ms65540 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 100005; int v, e, ID = 0; int num[MAXN], low[MAXN], par[MAXN]; int p[2][MAXN], r[2][MAXN]; vector<int> adj[MAXN]; int root(int id, int x){ if(p[id][x] == x) return x; return p[id][x] = root(id, p[id][x]); } void connect(int id, int x, int y){ x = root(id, x), y = root(id, y); if(r[id][x] > r[id][y]) swap(x, y); p[id][x] = y; r[id][y] ++; } bool connected(int id, int x, int y){ x = root(id, x), y = root(id, y); return x == y; } void dfs(int x){ num[x] = low[x] = ID ++; for(int nxt : adj[x]){ if(num[nxt] == -1){ par[nxt] = x; dfs(nxt); low[x] = min(low[x], low[nxt]); if(low[nxt] > num[x]) cout << x+1 << ' ' << nxt+1 << '\n'; } else if(nxt != par[x]){ low[x] = min(low[x], num[nxt]); } } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> v >> e; for(int i = 0; i < v; i ++) p[0][i] = p[1][i] = i, r[0][i] = r[1][i] = 0, num[i] = low[i] = par[i] = -1; for(int i = 0; i < e; i ++){ int a, b; cin >> a >> b; /* if(!connected(0, a-1, b-1)){ adj[a-1].push_back(b-1); adj[b-1].push_back(a-1); connect(0, a-1, b-1); } else if(!connected(1, a-1, b-1)){ adj[a-1].push_back(b-1); adj[b-1].push_back(a-1); connect(1, a-1, b-1); }*/ adj[a-1].push_back(b-1); adj[b-1].push_back(a-1); } for(int i = 0; i < v; i ++) if(num[i] == -1) dfs(i); }
#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...