Advertisement
Nik_Perepelov

говно

Nov 17th, 2021
914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int n, m;
  7. vector<int> used;
  8. vector<vector<int>> g;
  9. vector<int> ans;
  10.  
  11. void dfs(int v, int parent){
  12.     used[v] = 1;
  13.     for (auto &i : g[v]){
  14.         if (used[i] == 1){
  15.             cout << "No";
  16.             exit(0);
  17.         }
  18.         if (used[i] == 0){
  19.             dfs(i, v);
  20.         }
  21.     }
  22.     used[v] = 2;
  23.     ans.push_back(v);
  24. }
  25.  
  26.  
  27. int main() {
  28.     cin >> n >> m;
  29.  
  30.     used.resize(n);
  31.     g.resize(n);
  32.  
  33.     for (int i = 0; i < m; i++){
  34.         int fr, to;
  35.         cin >> fr >> to;
  36.         fr--; to--;
  37.         g[fr].emplace_back(to);
  38.     }
  39.  
  40.     for (int i = 0; i < n; i++){
  41.         if (!used[i]){
  42.             dfs(i, -1);
  43.         }
  44.     }
  45.  
  46.     cout << "Yes\n";
  47.     for (int i = 0; i < n; i++){
  48.         cout << ans[n - 1 - i] + 1 << ' ';
  49.     }
  50.  
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement