Cod sursa(job #1009849)

Utilizator hevelebalazshevele balazs hevelebalazs Data 13 octombrie 2013 21:54:55
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
#include <vector>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 100000
using namespace std;
bool c[N];
vector<int>out[N];
void dfs(int v){
    c[v]=true;
    fr(i,0,out[v].size()) if(!c[out[v][i]])dfs(out[v][i]);
    }
int main(){
    freopen("dfs.in","r",stdin);
    freopen("dfs.out","w",stdout);
    int n,m,a,b,s=0;
    scanf("%i%i",&n,&m);
    fr(i,0,m){
        scanf("%i%i",&a,&b);--a;--b;
        out[a].push_back(b);out[b].push_back(a);
        }
    fr(i,0,n) if(!c[i]){++s;dfs(i);}
    printf("%i\n",s);
    return 0;
    }