답안 #948355

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
948355 2024-03-18T04:42:30 Z vjudge1 Pipes (CEOI15_pipes) C++17
0 / 100
1091 ms 65536 KB
#include <bits/stdc++.h>
using namespace std;
 
//#define int long long
#define pb push_back
#define ff first
#define ss second
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define sz(v) (int)v.size()
 
//const int INF = 1e18;
const int mod = 998244353;
const int N = 1e5+5;

int n;
vector<vector<int>> adj;
vector<bool> visited;
vector<int> tin, low;
int timer;
map<pair<int,int>,bool> bridge;

void IS_BRIDGE(int u, int v){
	bridge[{min(u, v), max(u, v)}] = 1;
}

void dfs(int v, int p = -1) {
    visited[v] = true;
    tin[v] = low[v] = timer++;
    for (int to : adj[v]) {
        if (to == p) continue;
        if (visited[to]) {
            low[v] = min(low[v], tin[to]);
        } else {
            dfs(to, v);
            low[v] = min(low[v], low[to]);
            if (low[to] > tin[v])
                IS_BRIDGE(v, to);
        }
    }
}

void find_bridges() {
    timer = 0;
    visited.assign(n, false);
    tin.assign(n, -1);
    low.assign(n, -1);
    for (int i = 0; i < n; ++i) {
        if (!visited[i])
            dfs(i);
    }
}

map<pair<int,int>, int> mp;
void solve(){
	cin >> n;
	int m; cin >> m;
	adj.resize(n);
	for(int i = 0; i < m; i++){
		int u, v; cin >> u >> v;
		u--; v--;
		if(mp[{min(u, v), max(u, v)}] == 2){
			
		}else{
			mp[{min(u, v), max(u, v)}]++;
			adj[u].pb(v);
			adj[v].pb(u);
		}
	}
	find_bridges();
	for(auto [u, v] : bridge) cout << u.ff + 1 << ' ' << u.ss + 1 << '\n';
}

main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int tt = 1;
	//cin >> tt;
	while (tt--) {
		solve();
	}
}

Compilation message

pipes.cpp:74:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   74 | main(){
      | ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 1 ms 348 KB Wrong number of edges
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1624 KB Output is correct
2 Incorrect 6 ms 1372 KB Wrong number of edges
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 634 ms 43832 KB Memory limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 924 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 976 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1091 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1090 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1080 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1083 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1018 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -