#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include <bits/stdc++.h>
using namespace std;
#define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false);
#define all(a) a.begin(), a.end()
#define lmx 9223372036854775807;
//#define mod 1000000007
#define F first
#define S second
vector<int> adj[100010];
int par[100010], par2[100010], sz[100010], n, m, mxsz, cnt, seen[100010], d[100010];
int getpar(int v){
return ((par[v]!=v) ? par[v] = getpar(par[v]) : v);
}
int getpar2(int v){
return ((par2[v]!=v) ? par2[v] = getpar(par2[v]) : v);
}
bool merge(int u, int v){
int u1 = getpar(u), v1 = getpar(v);
if(u1 == v1){
int u2 = getpar2(u), v2 = getpar2(v);
if(u2 == v2) return 0;
par2[u2] = v2;
return 1;
}
par[u1] = v1;
return 1;
}
void dfs(int v, int p){
seen[v]=seen[p]+1;
d[v]=seen[v];
for(auto u:adj[v]){
if(u==p)continue;
if(!seen[u])dfs(u, v);
d[v]=min(d[v], d[u]);
}
if(d[v]==seen[v]&&p!=0)cout << v << " " << p << "\n";
}
int main() {
cin >> n >> m;
for(int i=1;i<=n;i++)par[i]=i, par2[i]=i;
for(int i=0;i<m;i++){
int u, v;cin >> v >> u;
if(merge(u, v))adj[v].push_back(u), adj[u].push_back(v);
}
for(int i=1;i<=n;i++)dfs(i, 0);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
4440 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
7 ms |
4944 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
247 ms |
10356 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
366 ms |
15224 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
588 ms |
23440 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
760 ms |
33308 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
1217 ms |
46748 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
1666 ms |
59712 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
2003 ms |
65536 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
2559 ms |
65536 KB |
Memory limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |