Cod sursa(job #302710)

Utilizator TyberFMI Dogan Adrian Ioan Lucian Tyber Data 9 aprilie 2009 10:36:32
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
struct tnod{int x;
	    tnod*urm;};
tnod *v[200000];
int n,m,s[200000],c;
void add(tnod*&,int);
void df(int);
int main(){
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){int x,y;
		      scanf("%d %d",&x,&y);
		      add(v[x],y);
		      add(v[y],x);}
for(int i=1;i<=n;i++)if(s[i]==0){c++;
				 df(i);}
printf("%d\n",c);
return 0;}
void add(tnod*&d,int t){tnod *p;
			p=new tnod;
			p->x=t;
			p->urm=d;
			d=p;}
void df(int t){tnod *p;
	       s[t]=1;
	       for(p=v[t];p!=NULL;p=p->urm)if(s[p->x]==0)df(p->x);}