Maruf_Hasan

Top_Sort

May 14th, 2020
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define M 1000
  5. vector<int>adj[M];
  6. int n,m;
  7.  
  8. vector<int>v;
  9. int mark[M];
  10.  
  11. bool visited[M];
  12.  
  13. void mytopsort()
  14. {
  15. priority_queue<int, vector <int>, greater<int> >q;
  16. int i;
  17. for(i=0;i<n;i++)
  18. {
  19. if(mark[i]==0)
  20. {
  21. q.push(i);
  22. }
  23. }
  24.  
  25. while(!q.empty())
  26. {
  27. int u=q.top();
  28. q.pop();
  29. v.push_back(u);
  30. for(i=0;i<adj[u].size();i++)
  31. {
  32. int k=adj[u][i];
  33. mark[k]--;
  34. if(mark[k]==0)
  35. q.push(k);
  36. }
  37. }
  38. }
  39.  
  40.  
  41. int main()
  42. {
  43. int n;
  44. cin>>n;
  45. for(int i=0;i<n;i++)
  46. {
  47. int u,v;
  48. cin>>u>>v;
  49. adj[u].push_back(v);
  50. mark[v]++;
  51. }
  52. mytopsort();
  53.  
  54. return 0;
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment