Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define fi first
  3. #define se second
  4. #define vi_a vector<int>a;
  5. #define p_b push_back
  6. #define ll long long
  7. #define ld long double
  8. #define pll pair<long long,bool>
  9. #define pii pair<int,int>
  10. #define m_p make_pair
  11. #define fast_io cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(0);
  12. #define all(x) x.begin(),x.end()
  13. #define sset ordered_set
  14. #define sqr(x) (x)*(x)
  15. #define pw(x) (1ll << x)
  16. #define sz(x) (int)x.size()
  17. #define endl "\n"
  18.  
  19. using namespace std;
  20. vector<vector<ll>>a(0,vector<ll>(0));
  21. vector<bool>used(0);
  22. vector<ll>order;
  23. bool ok1=0;
  24. void dfs(ll v,ll pr=-1){
  25.     used[v]=1;
  26.     for(ll & z : a[v]){
  27.         if(!used[z]){
  28.             dfs(z,v);
  29.         }
  30.         else{
  31.             if(z!=pr){
  32.                 ok1=0;
  33.             }
  34.         }
  35.     }
  36.     order.p_b(v);
  37. }
  38. int main()
  39. {
  40.     fast_io;
  41.     ll n,m;
  42.     cin>>n>>m;
  43.     a.resize(n);
  44.     used.assign(n,0);
  45.     ll v,u;
  46.     for(ll i=0;i<m;i++){
  47.         cin>>v>>u;
  48.         v--;u--;
  49.         a[v].p_b(u);
  50.     }
  51.     for(ll i=0;i<n;i++){
  52.         if(!used[i]){
  53.             dfs(i);
  54.         }
  55.     }
  56.     reverse(all(order));
  57.     if(ok1){
  58.         cout<<"Yes"<<endl;
  59.         for(ll &z : order)cout<<z<<" ";
  60.     }
  61.     else{
  62.         cout<<"No";
  63.     }
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement