Cod sursa(job #3316880)

Utilizator babababRiclea Amalia bababab Data 21 octombrie 2025 13:13:11
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
//DFS
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;

vector<int> L[101];
int viz[100];
int nr = 0;
void DFS(int nod) {
    viz[nod] = 1;
    for (int vecin : L[nod]) {
        if (viz[vecin] == 0) {
            DFS(vecin);
        }
    }

}

void conexe(int n) {
    for (int i = 1; i <= n; i++)
        if (viz[i] == 0) {
            nr++;
            DFS(i);
        }
}

int main() {
    int n, m, x, y, i = 0;
    cin >> n >> m;
    while(i < m){
        cin >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
        i++;
    }
    for (int i = 1; i <= n; i++){
        sort(L[i].begin(), L[i].end());
        L[i].erase(unique(L[i].begin(), L[i].end()), L[i].end());
        //cout << L[i].size() << " ";
        for (int j = 0; j < L[i].size(); j++){
            cout << L[i][j] << " ";
        }
        cout << '\n';
    }
    conexe(n);
    cout << nr;
}