Submission #367093

#TimeUsernameProblemLanguageResultExecution timeMemory
367093duchungPipes (CEOI15_pipes)C++17
10 / 100
2394 ms65540 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n , m; vector<int> edge[N]; int low[N] , tin[N]; bool visited[N]; int timer = 0; void dfs(int u , int p) { low[u] = tin[u] = ++timer; visited[u] = true; for (auto v : edge[u]) { if (p == v) continue; if (visited[v]) { low[u] = min(low[u] , tin[v]); } else { dfs(v , u); low[u] = min(low[u] , low[v]); if (low[v] > tin[u]) { cout << u << " " << v << "\n"; } } } } int main() { // freopen(".inp","r",stdin); // freopen(".out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; while(m--) { int u , v; cin >> u >> v; edge[u].push_back(v); edge[v].push_back(u); } for (int i = 1 ; i <= n ; ++i) tin[i] = low[i] = -1 , visited[i] = false; for (int i = 1 ; i <= n ; ++i) { if (!visited[i]) { dfs(i , -1); } } }
#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...