#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define a first
#define b second
#define pb push_back
int n,m;
int par[100001];
int par2[100001];
int find(int no){
if(par[no]==no){
return no;
}
par[no]=find(par[no]);
return par[no];
}
int find2(int no){
if(par2[no]==no){
return no;
}
par2[no]=find2(par2[no]);
return par2[no];
}
vector<int> adj[100001];
int cco=1;
void dfs(int no,int par3=-1){
par[no]=cco;
cco+=1;
for(auto nn:adj[no]){
if(par[nn]>0){
if(nn==par3){
continue;
}
if(par[nn]>=par[no]){
continue;
}
par2[nn]-=1;
par2[no]+=1;
}
else{
dfs(nn,no);
if(par2[nn]==0){
cout<<no+1<<" "<<nn+1<<endl;
}
par2[no]+=par2[nn];
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>m;
for(int i=0;i<n;i++){
par[i]=i;
par2[i]=i;
}
int aa,bb;
int cc,dd;
int e,f;
for(int i=0;i<m;i++){
cin>>cc>>dd;
cc-=1;
dd-=1;
adj[cc].pb(dd);
adj[dd].pb(cc);
continue;
//cout<<cc<<" "<<dd<<endl;
aa=find(cc);
// cout<<aa;
bb=find(dd);
// cout<<"::"<<bb<<endl;
if(aa==bb){
e=find2(cc);
f=find2(dd);
if(e==f){
continue;
}
adj[cc].pb(dd);
adj[dd].pb(cc);
par2[e]=f;
}
else{
par[aa]=bb;
adj[cc].pb(dd);
adj[dd].pb(cc);
}
// cout<<cc<<",,,,,,,,"<<dd<<endl;
}
//vis=par
//dp=par2
for(int i=0;i<n;i++){
par[i]=0;
par2[i]=0;
}
for(int i=0;i<n;i++){
if(par[i]==0){
dfs(i);
}
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
2688 KB |
Output is correct |
2 |
Incorrect |
6 ms |
2688 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
10 ms |
3328 KB |
Output is correct |
2 |
Incorrect |
10 ms |
3072 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
139 ms |
11128 KB |
Output is correct |
2 |
Correct |
120 ms |
10616 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
262 ms |
14928 KB |
Output is correct |
2 |
Runtime error |
311 ms |
18936 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
481 ms |
25848 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
855 ms |
30760 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
1560 ms |
52620 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
1840 ms |
65540 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
2433 ms |
65540 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
2837 ms |
65540 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
2 |
Halted |
0 ms |
0 KB |
- |