Advertisement
Shiyan12

Untitled

Jun 26th, 2021
975
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. using namespace std;
  6.  
  7. int n, m; // n - кол-во вершин, m - кол-во рёбер
  8. vector <vector <int>> g; // граф (в памяти компьютера будет храниться в виде списков смежности)
  9. vector <bool> used;
  10.  
  11. void dfs(int v) {
  12.     used[v] = true;
  13.     for (int u : g[v])
  14.         if (!used[u])
  15.             dfs(u);
  16. }
  17.  
  18. int main() {
  19.     setlocale(LC_ALL, "rus");
  20.     ifstream rd;
  21.     rd.open("graph.txt");
  22.     rd >> n >> m;
  23.     g.resize(n);
  24.     used.resize(n, false);
  25.     for (int i = 0; i < m; i++) {
  26.         int u, v;
  27.         rd >> u >> v;
  28.         --u;
  29.         --v;
  30.         g[u].push_back(v);
  31.         g[v].push_back(u);
  32.     }
  33.     int st = 0;
  34.     dfs(st);
  35.     bool b = true;
  36.     for (int i = 0; i < n && b; i++)
  37.         if (!used[i]) {
  38.             cout << "Граф НЕсвязный" << endl;
  39.             b = false;
  40.         }
  41.     if (b)
  42.         cout << "Граф связный";
  43.     system("pause");
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement