fork download
  1. #include<iostream>
  2. #include<vector>
  3. #include<cstring>
  4. #define max 1000
  5. #define INF 100000000
  6. using namespace std;
  7.  
  8. vector<int> adj[max];
  9. int time_count,n,e;
  10. char visited[max];
  11. int reach_time[max],end_time[max];
  12. void createAdjecenyList(int u,int v){
  13. adj[u].push_back(v);
  14. adj[v].push_back(u);
  15. }
  16.  
  17. void dfs(int v){
  18. int u;
  19. visited[v] = 1;
  20. printf("Found Node: %d\n",v);
  21. reach_time[v]=time_count++;
  22. for(u=0; u < adj[v].size(); u++)
  23. if(!visited[adj[v][u]])//mistake
  24. dfs(adj[v][u]);//mistake
  25. end_time[v] = time_count++;
  26. }
  27.  
  28. int main(){
  29. int u,v,i;
  30. memset(visited,0,sizeof(visited)); // 0 is for new node and 1 is for visited node
  31. scanf("%d",&n); // number of nodes
  32. scanf("%d",&e); // number of edges
  33. while(e--) {
  34. scanf("%d %d",&u,&v);
  35. createAdjecenyList(u,v);
  36. }
  37. dfs(1);
  38. printf("time: %d\n",time_count);
  39. cout<<endl;
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0s 3496KB
stdin
6
9
1 2
2 3
1 3
2 4
4 5
2 5
1 5
4 6
1 6
stdout
Found Node: 1
Found Node: 2
Found Node: 3
Found Node: 4
Found Node: 5
Found Node: 6
time: 12