C번 내 코드 틀린거같음

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. typedef pair<ll,ll> pi;
  5. vector<int>graph[200005];
  6. bool v[200005];
  7. void DFS(int cur){
  8. v[cur] = 1;
  9. for(int nxt : graph[cur]){
  10. if(!v[nxt]) DFS(nxt);
  11. }
  12. }
  13. int main(){
  14. ios_base::sync_with_stdio(false); cin.tie(NULL);
  15. int n,m; cin>>n>>m;
  16. for(int i=1; i<=m; i++){
  17. int a,b; cin>>a>>b;
  18. graph[a].emplace_back(b);
  19. graph[b].emplace_back(a);
  20. }
  21. if(m!=n-1) cout<<"No";
  22. else{
  23. int start = -1;
  24. for(int i=1; i<=n; i++){
  25. if(graph[i].size()==1){
  26. start = i;
  27. break;
  28. }
  29. }
  30. if(start==-1) cout<<"No";
  31. else{
  32. DFS(start);
  33. for(int i=1; i<=n; i++) if(!v[i]){
  34. cout<<"No";
  35. return 0;
  36. }
  37. cout<<"Yes";
  38. }
  39. }
  40. }


반례 

4 3

1 2

1 3

1 4