File tree Expand file tree Collapse file tree 2 files changed +101
-0
lines changed Expand file tree Collapse file tree 2 files changed +101
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments