Source code for submission s540

fn.cpp

  1. #include <iostream>
  2. #include <set>
  3. #include <stdio.h>
  4. #include <utility>
  5. #include <map>
  6. #include <string>
  7. #include <sstream>
  8. #include <algorithm>
  9. #include <vector>
  10. using namespace std;
  11.  
  12. vector<vector<int> > G;
  13. vector<char> visited;
  14. int dfs(int n){
  15. visited[n] = true;
  16. int sous = G[n].size();
  17. int res = 0;
  18. if(sous == 3) res = 1;
  19. else if(sous > 3) res = 2;
  20. for(int i=0; i<G[n].size(); ++i){
  21. if(!visited[G[n][i]]){
  22. res += dfs(G[n][i]);
  23. }
  24. }
  25. return res;
  26. }
  27.  
  28. int main(){
  29. int n, m;
  30. while(cin >> n >> m){
  31. G.clear();
  32. G.resize(n+5);
  33. visited.clear();
  34. visited.resize(n+5);
  35. for(int i=0; i<m; ++i){
  36. int x, y;
  37. cin >> x >> y;
  38. G[x].push_back(y);
  39. G[y].push_back(x);
  40. }
  41. bool yes = false;
  42. for(int i=1; i<G.size(); ++i){
  43. if(!visited[i]){
  44. if(dfs(i)>=2){
  45. yes = true;
  46. break;
  47. }
  48. }
  49. }
  50. if(yes){
  51. cout << "YES" << '\n';
  52. }
  53. else{
  54. cout << "NO" << '\n';
  55. }
  56. }
  57. return 0;
  58. }
  59.