Cod sursa(job #777859)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 13 august 2012 16:56:17
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<bitset>
using namespace std;
vector <int> v[100001];
bitset <100001> d;
inline void dfs(int nod)
{
	d[nod]=1;
	for(vector <int> :: iterator it=v[nod].begin();it!=v[nod].end();it++) 
		if(d[*it]==0)
			dfs(*it);
}
int main ()
{
	int n,m,i,x,y,nr;
	ifstream f("dfs.in");
	ofstream g("dfs.out");
	f>>n>>m;
	for(i=1;i<=m;i++) {
		f>>x>>y;
		v[x].push_back(y);
		v[y].push_back(x);
	}
	f.close();
	nr=0;
	for(i=1;i<=n;i++)
		if(d[i]==0) {
			nr++;
			dfs(i);
		}
	g<<nr;
	g.close();
	return 0;
}