Cod sursa(job #385149)

Utilizator de3de3Ilinca Diana Andreea de3de3 Data 22 ianuarie 2010 09:18:30
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
struct nod{
	int nr;
	nod *adr;
} *v[1001], *p;

long x, y, n, m, l, i;
int viz[1001];

void citire(){
	int i;
	f>>n>>m;
	for(i=1;i<=m;i++){
		f>>x>>y;
		p=new nod;
	    p->nr=y;
	    p->adr=v[x];
		v[x]=p;
		
		p=new nod;
		p->nr=x;
		p->adr=v[y];
		v[y]=p;
	}
}

void dfs(int NOD){
	
	viz[NOD] = 1;
	nod *p;
	for(p=v[NOD];p!=NULL;p=p->adr)
		if(!viz[p->nr])dfs(p->nr);
}
int main(){
	
	citire();
	for(i=1;i<=n;i++)
		if (!viz[i]) {
			l++;
			dfs(i);
		}
	
	g<<l;
	return 0;
}