Advertisement
stepan12123123123

Untitled

Jun 1st, 2023
796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3.  
  4. using namespace std;
  5. const int N = 25;
  6. int k = 1;
  7. int visited[N];
  8. int M[N][N];
  9.  
  10. void dfs(int v) {
  11.     visited[v] = k;
  12.     for (int i = 1; i < N; i++) {
  13.         if (M[v][i] == 1 && visited[i] == 0) {
  14.             dfs(i);
  15.         }
  16.     }
  17. }
  18.  
  19. int main() {
  20.     int a, b, count, maxi;
  21.     maxi = 0;
  22.     count = 0;
  23.     ifstream fin("fin.txt");
  24.     while (fin >> a >> b) {
  25.         if (a == b && a == -1) break;
  26.         M[a][b] = 1;
  27.         M[b][a] = 1;
  28.         count = max(max(a, b), count);
  29.     }
  30. //    for(int i = 1; i < N; i++){
  31. //        for(int j = 1; j < N; j++){
  32. //            cout << M[i][j] << ' ';
  33. //        }
  34. //        cout << endl;
  35. //    }
  36.     for (int i = 1; i < N; i++) {
  37.         if (visited[i] == 0) {
  38.             dfs(i);
  39. //            cout << "ЭТО I:" << i << endl;
  40.             k++;
  41.         }
  42.     }
  43.     for (int i = 1; i < count+1; i++) {
  44.         cout << visited[i] << " ";
  45.     }
  46.     cout << endl;
  47.     for(int i = 1; i < count+1; i++){
  48.         if(maxi <= visited[i]){
  49.             maxi = visited[i];
  50.         }
  51.     }
  52.     cout << maxi << endl;
  53.     return 0;
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement