Advertisement
shawon_majid

dfs

Jun 5th, 2022
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. //Bismillahir Rahman-ir Rahim
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #define debug(x) cout << '>' << #x << " : " << x << endl;
  5. #define all(c) c.begin(), c.end()
  6. #define F first
  7. #define S second
  8. typedef unsigned long long ull;
  9. typedef long long ll;
  10.  
  11. int times = 0;
  12. vector <int> adj[500];
  13.  
  14. vector <int> starttimes(500);
  15. vector <int> endtimes(500);
  16.  
  17. vector <int> vis(500);
  18.  
  19. void dfs(int node){
  20.     vis[node] = 1;
  21.     for(auto v: adj[node]){
  22.         level[v] = node;
  23.         parent[v] = node;
  24.         if(!vis[v]){
  25.             dfs(v);
  26.         }
  27.     }
  28. }
  29.  
  30. int main(){
  31.  
  32.     int n, e;
  33.     cin >> n >> e;
  34.  
  35.     for(int i = 0; i < e; i++){
  36.         int u, v;
  37.         cin >> u >> v;
  38.         adj[u].push_back(v);
  39.     }
  40.  
  41.     for(int i = 1; i <= n; i++)
  42.     {
  43.         if(vis[i] != 1){
  44.             dfs(i)
  45.             cnt++;
  46.         }
  47.     }
  48.  
  49.     dfs(1);
  50.  
  51.     for(int i = 1; i <= n; i++){
  52.         cout << "node " << i << ": " << starttimes[i] << " | " << endtimes[i] << endl;
  53.     }
  54.  
  55.  
  56.  
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement