Advertisement
AlexGo11

Untitled

Jan 2nd, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n, m;
  4. vector < vector < int > > g;
  5. vector < int > color;
  6. vector < int > cur;
  7. int is = 0;
  8.  
  9. void dfs(int v, int p) {
  10.     if (color[v] == 1) {
  11.         is = max(is, 1);
  12.         return;
  13.     }
  14.     color[v] = 1;
  15.     for (auto u : g[v]) {
  16.         if (u != p && color[u] != 2) {
  17.             dfs(u, v);
  18.         }
  19.     }
  20.     color[v] = 2;
  21. }
  22.  
  23. int main() {
  24.     cin >> n >> m;
  25.     g.resize(n);
  26.     color.resize(n, 0);
  27.     for (int i = 0; i < m; i++) {
  28.         int a, b;
  29.         cin >> a >> b;
  30.         a--; b--;
  31.         g[a].push_back(b);
  32.     }
  33.     for (int i = 0; i < n; i++) {
  34.         if (color[i] == 0) {
  35.             dfs(i, -1);
  36.         }
  37.     }
  38.     cout << is;
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement