Submission #739072

#TimeUsernameProblemLanguageResultExecution timeMemory
739072kirakaminski968Pipes (CEOI15_pipes)C++17
10 / 100
1742 ms65536 KiB
#include <bits/stdc++.h>
using namespace std;
void dfs(int u, int p, vector<int> &num, vector<int> &low, int timer, vector<vector<int>> &g){
	low[u] = num[u] = ++timer;
	for(int v : g[u]){
		if(!num[v]){
			dfs(v, u, num, low, timer, g);
			if(low[v] > num[u]) cout << u+1 << " " << v+1 << "\n";
			low[u] = min(low[u], low[v]);
		}
		else if(v != p) low[u] = min(low[u], num[v]);
	}
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int N,M; cin >> N >> M;
	vector<vector<int>> g(N);
	for(int i = 0;i<M;++i){
        int a,b; cin >> a >> b; --a; --b;
        g[a].push_back(b); g[b].push_back(a);
	}
	vector<int> num(N),low(N);
	for(int i = 0; i < N; i++)
		if(!num[i]) dfs(i, -1, num, low, 0,g);
    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...