Cod sursa(job #2224215)

Utilizator vladcainamisirVlad Cainamisir vladcainamisir Data 23 iulie 2018 14:33:17
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
const int NMAX = 100000;
vector <int> v[NMAX + 1];
bool viz[NMAX + 1];
void dfs(int nod)
{
    int i , len;
    len = (int) v[nod].size();
     viz[ nod ] = 1;
    for(i = 0; i < len ; i ++)
        if(!viz[ v[ nod ][ i ] ])
    dfs(v[nod][ i ]);
}
int main(){
    int n , m , i , a , b , tot;
    freopen("dfs.in" , "r" , stdin);
    freopen("dfs.out" , "w" , stdout);
    scanf("%d%d" , &n , &m);
    for(i = 1 ; i <= m ; i++)
    {
        scanf("%d%d", &a , &b);
         v[ a ].push_back( b );
         v[ b ].push_back( a );
    }
    tot = 0;
    for( i = 1;i <= n ; i++ ){
        if( !viz[i] )
        {
            tot ++ ;
            dfs( i );
        }
    }
    printf("%d" , tot);
    return 0;
}