Advertisement
kazi_omar

dfs_Anik

Mar 11th, 2021
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4.  
  5. #define lim 200005
  6.  
  7. vector<int> edge[lim];
  8. vector<int> ans;
  9. long long int vis[lim];
  10.  
  11. void dfs(int u)
  12. {
  13.     vis[u] = 1; //processing
  14.     for (int i = 0; i < edge[u].size(); i++)
  15.     {
  16.         int v = edge[u][i];
  17.         if (!vis[v])
  18.         {
  19.             dfs(v);
  20.         }
  21.     }
  22.     vis[u] = 2; //done
  23.    
  24. }
  25. int main()
  26. {
  27.     int n, e, u, v;
  28.     cin >> n >> e;
  29.     for (int i = 1; i <= e; i++)
  30.     {
  31.         cin >> u >> v;
  32.         edge[u].push_back(v);
  33.         //edge[v].push_back(u);
  34.     }
  35.  
  36.     for (int i = 1; i <= n; i++)
  37.     {
  38.         if (!vis[i])
  39.         {
  40.             dfs(i);
  41.         }
  42.     }
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement