fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const long long MaxN = 1e5 + 5;
  5.  
  6. long long n, m;
  7. vector<long long> a[MaxN];
  8. bool visited[MaxN];
  9.  
  10. void input()
  11. {
  12. cin >> n >> m;
  13.  
  14. for (long long i = 1; i <= m; i++)
  15. {
  16. long long u, v;
  17. cin >> u >> v;
  18.  
  19. a[u].push_back(v);
  20. a[v].push_back(u);
  21. }
  22. }
  23.  
  24. void dfs(long long s)
  25. {
  26. stack<long long> st;
  27.  
  28. st.push(s);
  29. visited[s] = true;
  30.  
  31. while (!st.empty())
  32. {
  33. long long u = st.top();
  34. st.pop();
  35.  
  36. for (long long v : a[u])
  37. {
  38. if (!visited[v])
  39. {
  40. visited[v] = true;
  41. st.push(v);
  42. }
  43. }
  44. }
  45. }
  46.  
  47. void solve()
  48. {
  49. if (m != n - 1)
  50. {
  51. cout << "NO";
  52. return;
  53. }
  54.  
  55. dfs(1);
  56.  
  57. for (long long i = 1; i <= n; i++)
  58. {
  59. if (!visited[i])
  60. {
  61. cout << "NO";
  62. return;
  63. }
  64. }
  65.  
  66. cout << "YES";
  67. }
  68.  
  69. int main()
  70. {
  71. input();
  72. solve();
  73. }
Success #stdin #stdout 0.01s 5980KB
stdin
Standard input is empty
stdout
NO