답안 #959119

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
959119 2024-04-07T13:52:03 Z Cyber_Wolf Pipes (CEOI15_pipes) C++17
50 / 100
779 ms 50908 KB
#include <bits/stdc++.h>
 
using namespace std;
 
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 
const int N = 1e5+5;
 
vector<int> adj[N];
int tin[N], par[N][2];
int n, m, tmp;

int get(int src, int t)
{
	if(src == par[src][t])	return src;
	return par[src][t] = get(par[src][t], t);
}

bool join(int u, int v, int t)
{
	u = get(u, t), v = get(v, t);
	if(u == v)	return false;
	par[u][t] = v;
	return true;
}
 
int dfs(int src, int pa = -1)
{
	int low, idx = 0, v = 0;
	tin[src] = low = ++tmp;
	for(auto it : adj[src])
	{
		if(it == pa && !v)
		{
			v = 1;
			idx++;	
			continue;
		}
		if(tin[it])
		{
			low = min(low, tin[it]);
			idx++;	
			continue;
		}
		int low_it = dfs(it, src);
		low = min(low, low_it);
		idx++;		
		if(low_it > tin[src])
		{
			cout << src << ' ' << it << '\n';
		}
	}
	return low;
}
 
int main()
{
	fastio;
	cin >> n >> m;
	for(int i = 1; i <= n; i++)	par[i][0] = par[i][1] = i;
	for(int i = 0; i < m; i++)
	{
		int u, v;
		cin >> u >> v;
		if(join(u, v, 0) || join(u, v, 1))	
		{
			adj[u].push_back(v), adj[v].push_back(u);
		}
	}
	for(int i = 1; i <= n; i++)
	{
		if(!tin[i])	dfs(i);
	}
 
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 3672 KB Output is correct
2 Correct 1 ms 3676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 4188 KB Output is correct
2 Correct 4 ms 3932 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 3960 KB Output is correct
2 Correct 66 ms 3956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 4688 KB Output is correct
2 Correct 132 ms 4236 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 197 ms 6484 KB Output is correct
2 Correct 163 ms 5804 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 253 ms 11348 KB Output is correct
2 Runtime error 245 ms 21244 KB Memory limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 407 ms 12584 KB Output is correct
2 Runtime error 417 ms 34564 KB Memory limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 528 ms 14676 KB Output is correct
2 Runtime error 478 ms 40256 KB Memory limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 646 ms 14620 KB Output is correct
2 Runtime error 657 ms 48752 KB Memory limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 779 ms 13900 KB Output is correct
2 Runtime error 758 ms 50908 KB Memory limit exceeded
3 Halted 0 ms 0 KB -