Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bits/stdc++.h"
- using namespace std;
- const int N = 2e4;
- int vis[N], c = 0;
- vector < vector < int > > v(N);
- void dfs(int root , int check){
- vis[root] = 1;
- for(auto it : v[root]){
- if(!vis[it])dfs(it, root);
- else if(vis[it] && it != check){
- c = 1;
- return;
- }
- }
- }
- int main(){
- int i, l, r;
- int n, m;
- cin >> n >> m;
- for( i = 0; i < m; i++){
- cin >> l >> r;
- v[l].push_back(r);
- v[r].push_back(l);
- }
- // for(i = 1; i <= n; i++)cout << parent[i] << ' ';cout << '\n';
- dfs(1,1);
- for(i = 1; i <= n; i++){
- if(!vis[i])c++;
- }
- // cout << c << endl;
- if(c || m != n-1)return cout << "NO",0;
- cout << "YES";
- }
Add Comment
Please, Sign In to add comment