Advertisement
AlexGo11

Untitled

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