loulett

dfs

May 5th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4.  
  5.  
  6. int MAX_INT = 0;
  7. int COUNT = 0;
  8. std::vector<int>visited;
  9. std::vector<std::vector<int>>matrix;
  10.  
  11. void dfs(int i)
  12. {
  13.     visited[i] = 1;
  14.     for (int j = 0; j < matrix[i].size(); j++)
  15.     {
  16.         if (!visited[matrix[i][j]])
  17.         {
  18.             visited[matrix[i][j]] = 1;
  19.             COUNT++;
  20.             dfs(matrix[i][j]);
  21.         }
  22.     }
  23. }
  24.  
  25. int main()
  26. {
  27.     //std::fstream finp;
  28.     //finp.open("input.txt");
  29.     int v = 0, e = 0, x = 0, y = 0, count = 0;
  30.     std::cin >> v;
  31.     std::cin >> e;
  32.     visited.resize(v);
  33.     matrix.resize(v);
  34.     for (int i = 0; i < e; i++)
  35.     {
  36.         std::cin >> x >> y;
  37.         matrix[x].push_back(y);
  38.         matrix[y].push_back(x);
  39.     }
  40.     for (int i = 0; i < v; i++)
  41.     {
  42.         if (!visited[i])
  43.         {
  44.             count++;
  45.             COUNT = 1;
  46.             dfs(i);
  47.             if (COUNT > MAX_INT)
  48.                 MAX_INT = COUNT;
  49.         }
  50.     }
  51.     std::cout << count << ' ' << MAX_INT << '\n';
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment