Submission #1193447

#TimeUsernameProblemLanguageResultExecution timeMemory
1193447nuutsnoyntonPipes (CEOI15_pipes)C++20
30 / 100
2703 ms94640 KiB
#include<bits/stdc++.h>

using namespace std;
using ll = int;
using pll = pair < ll, ll >;
const ll N = 1e5 + 2;

ll tin[N], timer = 1, low[N];
vector < ll > adj[N];


void euler_tour(ll node, ll par) {
	tin[node] = timer;
	low[node] = timer;
	timer ++;
	bool parent_found = false;
	for ( ll nxt : adj[node]) {
		if ( nxt == par && parent_found == false) {
			parent_found = true;
			continue;
		}
		if ( tin[nxt] > 0) {
			low[node] = min(low[node], tin[nxt]);
			continue;
		}
		euler_tour(nxt, node);
		low[node] = min(low[node], low[nxt]);
		if ( low[nxt] > tin[node]) {
			cout << node << " " << nxt << endl;
		}
	}
}


int main() {
	ll n, m, r, x, y, i, j, ans, t;
	
	cin >> n >> m;
	
	for (i = 1; i <= m; i ++) {
		cin >> x >> y;
		adj[x].push_back(y);
		adj[y].push_back(x);
	}
	
	for (i = 1; i <= n; i ++) {
		if ( tin[i] == 0) euler_tour(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...