Skip to content

Commit e599d89

Browse files
authored
Merge pull request larissalages#129 from Rishu-Xingh007/master
detect_cycle_dfs.cpp
2 parents 468727c + 46d0e7b commit e599d89

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#include<bits/stdc++.h>
2+
#define ll long long
3+
#define N 100000
4+
using namespace std;
5+
6+
vector<ll>adj[N];
7+
vector<ll>vis(N);
8+
void dfs(ll curr)
9+
{
10+
vis[curr]=1;
11+
for(auto neb:adj[curr])
12+
{
13+
if(vis[neb]==0)
14+
dfs(neb);
15+
}
16+
}
17+
int main()
18+
{
19+
ll n,m;
20+
cin>>n>>m;
21+
ll z;
22+
cin>>z;
23+
for(ll i=0;i<m;i++)
24+
{
25+
ll u,v;
26+
cin>>u>>v;
27+
adj[u].push_back(v);
28+
adj[v].push_back(u);
29+
}
30+
for(ll i=0;i<n;i++)
31+
vis[i]=0;
32+
vis[z]=1;
33+
if(z==0)dfs(1);
34+
else
35+
dfs(0);
36+
ll flag=0;
37+
for(ll i=0;i<n;i++)
38+
{
39+
if(!vis[i])
40+
{
41+
flag=1;
42+
break;
43+
}
44+
}
45+
if(flag==0)
46+
cout<<"yes\n";
47+
else
48+
cout<<"no\n";
49+
50+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include<bits/stdc++.h>
2+
#define ll long long
3+
#define pb push_back
4+
#define N 100000
5+
using namespace std;
6+
vector<ll>adj[N]; //storing the list
7+
vector<ll>vis(N);
8+
bool cycle(ll curr,ll par)
9+
{
10+
ll res=0;
11+
vis[curr]=1;
12+
for(auto neb:adj[curr])
13+
{
14+
if(neb==par)
15+
continue;
16+
if(vis[neb]==1)
17+
return 1;
18+
else
19+
res|=cycle(neb,curr);
20+
}
21+
return res;
22+
23+
}
24+
int main()
25+
{
26+
ll n,m; //no.of nodes and no. of connection
27+
cin>>n>>m;
28+
29+
for(ll i=1;i<=m;i++)
30+
{
31+
ll u,v;
32+
cin>>u>>v;
33+
adj[u].pb(v);
34+
adj[v].pb(u);
35+
36+
}
37+
for(ll i=1;i<=n;i++)
38+
vis[i]=0;
39+
ll flag=0;
40+
for(ll i=1;i<=n;i++)
41+
{
42+
if(vis[i]==0)
43+
{
44+
flag|=cycle(i,0);
45+
}
46+
}
47+
if(flag==1)
48+
cout<<"YES\n";
49+
else
50+
cout<<"NO\n";
51+
}

0 commit comments

Comments
 (0)