Cod sursa(job #1308504)

Utilizator Bursucelthe coppice Bursucel Data 4 ianuarie 2015 11:27:18
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("dfs.in"); ofstream g("dfs.out");
const int D=100001;
int n,m,nr,viz[D];
vector <int> L[D];
void read()
{	f>>n>>m;
	for(int x,y,i=1;i<=m;i++) {f>>x>>y; L[x].push_back(y); L[y].push_back(x);}
}
void DF(int k)
{	viz[k]=1;
    vector <int> :: iterator it=L[k].begin(), sf=L[k].end();
    for(; it != sf ; ++it)
	  if(!viz[*it]) DF(*it);
}
void solve()
{	for(int i=1;i<=n;i++)
		if(viz[i]==0) {nr++; DF(i);}
    g<<nr; g.close();
}
int main()
{	read(); solve(); return 0; }