fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define maxx 10009
  5. int color[maxx];
  6. vector<int>G[maxx];
  7. vector<int>v;
  8. void topo(int s)
  9. {
  10. color[s]=1;
  11. for(int i=0;i<G[s].size();i++)
  12. {
  13. if(!color[G[s][i]])
  14. topo(G[s][i]);
  15. }
  16. v.pb(s);
  17. }
  18. int main()
  19. {
  20. int n,m;
  21. cin>>n>>m;
  22. memset(color,0,sizeof color);
  23. while(m--)
  24. {
  25. int x,y;
  26. cin>>x>>y;
  27. G[x].pb(y);
  28. }
  29. for(int i=1;i<=n;i++)
  30. {
  31. if(!color[i])
  32. topo(i);
  33. }
  34. for(int i=v.size()-1;i>=0;i--)
  35. cout<<v[i]<<" ";
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0s 3388KB
stdin
2 2
1 2
2 1
stdout
1 2