Cod sursa(job #3361328)

Utilizator RegeleOu3433Calin V. Dragos Andrei RegeleOu3433 Data 23 iulie 2026 12:17:31
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1e5;
vector < int > vec[MAXN + 1];
bitset < MAXN + 1 > viz;
void dfs ( int nod ) {
    viz[nod] = 1;
    int i;
    for ( i = 0 ; i < vec[nod].size () ; i++ )
        if ( viz[vec[nod][i]] == 0 )
            dfs ( vec[nod][i] );
}
int main () {
    ifstream fin ( "dfs.in" );
    ofstream fout ( "dfs.out" );
    int n , m , i , x , y , com;

    fin >> n >> m;
    for ( i = 0 ; i < m ; i++ ) {
        fin >> x >> y;
        vec[x].push_back ( y );
        vec[y].push_back ( x );
    }
    com = 0;
    for ( i = 1 ; i <= n ; i++ ) {
        if ( viz[i] == 0 ) {
            com++;
            dfs ( i );
        }
    }
    fout << com << '\n';
    return 0;
}