#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];
vector<pair<int,int>> ans;
int cco=1;
void dfs(int no,int par3=-1){
par[no]=cco;
cco+=1;
int co=0;
for(auto nn:adj[no]){
if(par[nn]>0){
if(nn==par3 or 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;
//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;
}
Compilation message
pipes.cpp: In function 'void dfs(int, int)':
pipes.cpp:30:6: warning: unused variable 'co' [-Wunused-variable]
int co=0;
^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
7 ms |
2688 KB |
Output is correct |
2 |
Incorrect |
6 ms |
2688 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
15 ms |
3200 KB |
Output is correct |
2 |
Incorrect |
10 ms |
3072 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
104 ms |
3336 KB |
Output is correct |
2 |
Incorrect |
130 ms |
3192 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
238 ms |
4216 KB |
Wrong number of edges |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
371 ms |
5856 KB |
Output is correct |
2 |
Runtime error |
327 ms |
18660 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
547 ms |
9868 KB |
Output is correct |
2 |
Incorrect |
489 ms |
7784 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
780 ms |
10992 KB |
Output is correct |
2 |
Incorrect |
696 ms |
8528 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
966 ms |
12792 KB |
Output is correct |
2 |
Incorrect |
927 ms |
10856 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1203 ms |
12792 KB |
Output is correct |
2 |
Incorrect |
1098 ms |
11896 KB |
Wrong number of edges |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1436 ms |
12664 KB |
Output is correct |
2 |
Runtime error |
1316 ms |
26360 KB |
Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |