Cod sursa(job #401545)

Utilizator maditzaaciuca madalina maditzaa Data 22 februarie 2010 22:10:26
Problema Parcurgere DFS - componente conexe Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream.h>
#include <fstream.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
int n,m,i,j,viz[100005],nr=1;
struct nod{
	int inf;
	nod *adr;
};
nod *P[100005], *q;




void creare(){
	f>>n>>m;
	for(int k=1;k<=m;k++){
		f>>i>>j;
		q=new nod;
		q->inf=j;
		q->adr=P[i];
		P[i]=q;
	}
}


void dfs(int nodd)
{
	nod *q;
	viz[nodd] = 1;
	for (q = P[nodd]; q != NULL; q = q -> adr) if (!viz[q -> inf]) dfs(q -> inf);
}	


int main(){
	creare();
	for(i=1;i<=n;i++)
		if(!viz[i]){
			dfs(i);
			nr++;
		}
	g<<nr-1;
	
	f.close();
	g.close();
	return 0;
}