Cod sursa(job #1125695)

Utilizator andreiseiceanSeicean Andrei andreiseicean Data 26 februarie 2014 19:03:34
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream f("dfs.in"); ofstream g("dfs.out");

vector <int> v[100002];
int n,m,viz[100002],ct,nr;

void citire(){
int x,y,i;
f>>n>>m;
for (i=1;i<=m;i++){
    f>>x>>y;
    v[x].push_back(y);
    v[y].push_back(x);
}
}

void dfs(int i){
int k;
for (k=0;k<v[i].size();k++)
    if (!viz[v[i][k]]) {
        viz[v[i][k]]=ct;
        dfs(v[i][k]);
    }

}

int main(){
citire();
ct=1;
for (int i=1;i<=n;i++) if (!viz[i]) { viz[i]=ct; nr++; dfs(i); ct++; }
g<<nr;
}