Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<bits/stdc++.h>
- using namespace std;
- const int N = 25;
- int k = 1;
- int visited[N];
- int M[N][N];
- void dfs(int v) {
- visited[v] = k;
- for (int i = 1; i < N; i++) {
- if (M[v][i] == 1 && visited[i] == 0) {
- dfs(i);
- }
- }
- }
- int main() {
- int a, b, count, maxi;
- maxi = 0;
- count = 0;
- ifstream fin("fin.txt");
- while (fin >> a >> b) {
- if (a == b && a == -1) break;
- M[a][b] = 1;
- M[b][a] = 1;
- count = max(max(a, b), count);
- }
- // for(int i = 1; i < N; i++){
- // for(int j = 1; j < N; j++){
- // cout << M[i][j] << ' ';
- // }
- // cout << endl;
- // }
- for (int i = 1; i < N; i++) {
- if (visited[i] == 0) {
- dfs(i);
- // cout << "ЭТО I:" << i << endl;
- k++;
- }
- }
- for (int i = 1; i < count+1; i++) {
- cout << visited[i] << " ";
- }
- cout << endl;
- for(int i = 1; i < count+1; i++){
- if(maxi <= visited[i]){
- maxi = visited[i];
- }
- }
- cout << maxi << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement