fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n, m, st, en;
  5. vector<int> adj[1001];
  6. bool visited[1001];
  7. int parent[1001];
  8.  
  9. void inp(){
  10. cin >> n >> m;
  11. for(int i = 0; i < m; i++){
  12. int x, y; cin >> x >> y;
  13. adj[x].push_back(y);
  14. adj[y].push_back(x);
  15. }
  16. memset(visited, false, sizeof(visited));
  17. }
  18.  
  19.  
  20. bool DFS(int u){
  21. visited[u] = true;
  22. for(int v : adj[u]){
  23. if(!visited[v]){
  24. parent[v] = u;
  25. if(DFS(v)) return true;
  26. }
  27. else if(v != parent[u]){
  28. return true;
  29. }
  30. }
  31. return false;
  32. }
  33.  
  34. bool BFS(int u){
  35. visited[u] = true;
  36. queue<int> q;
  37. q.push(u);
  38. while(! q.empty()){
  39. int v = q.front(); q.pop();
  40. for(int x : adj[v]){
  41. if(!visited[x]){
  42. q.push(x); visited[x] = true; parent[x] = v;
  43. }
  44. else if(x != parent[v]){
  45. return true;
  46. }
  47. }
  48. }
  49. return false;
  50. }
  51.  
  52.  
  53. int main(){
  54. inp();
  55. for(int i = 1; i <= n; i++){
  56. if(!visited[i]){
  57. if(DFS(i)){
  58. cout << "YES\n";
  59. return 0;
  60. }
  61. }
  62. }
  63. cout << "NO\n";
  64. return 0;
  65. }
  66.  
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
NO