Cod sursa(job #2969479)

Utilizator Balauta_AlbertBalauta Albert Balauta_Albert Data 23 ianuarie 2023 11:29:41
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define N 100005
using namespace std;

ifstream fin ("dfs.in");
ofstream fout ("dfs.out");

vector<int> g[N];
int n, m;
int viz[N];

void afis(){
    for(int i = 1; i <= n; ++i){
        cout << i << ' ';
        for(auto nod : g[i]){
            cout << nod << " ";
        }
        cout << '\n';
    }
}

void dfs(int i, int val){
    viz[i] = val;
    for(auto nod : g[i]){
        if(!viz[nod])
            dfs(nod,val);
    }
}

int main() {
    fin >> n >> m;
    for(int i = 0; i < m; ++ i){
        int x, y;
        fin >> x >> y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    int val = 1;
    for(int i = 1; i <= n; ++i){
        if(!viz[i]){
            dfs(i, val);
            ++val;
        }
    }
    fout << val-1;

    return 0;
}