Submission #958988

#TimeUsernameProblemLanguageResultExecution timeMemory
958988Cyber_WolfPipes (CEOI15_pipes)C++17
30 / 100
1297 ms65536 KiB
#include <bits/stdc++.h> using namespace std; #define lg int #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); const lg N = 1e5+5; vector<lg> adj[N]; lg n,m, low[N], tin[N], tmp, id; set<array<lg, 2>> se; void dfs(lg src, lg par = -1) { tin[src] = low[src] = ++tmp; for(auto it : adj[src]) { if(it == par) { continue; } if(tin[it]) { if(low[it] > tin[src]) { if(se.find({it, src}) != se.end()) se.erase({it, src}); } low[src] = min(low[src], tin[it]); continue; } dfs(it, src); low[src] = min(low[src], low[it]); if(low[it] > tin[src]) { se.insert({it, src}); } } // cout << src << ' ' << low[src] << '\n'; } int main() { fastio; cin >> n >> m; for(int i = 0; i < m; i++) { lg u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for(int i = 1; i <= n; i++) { if(!tin[i]) dfs(i); } for(auto [a, b] : se) cout << a << ' ' << b << '\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...