Cod sursa(job #673951)

Utilizator CeachiCeachi Bogdan Ceachi Data 5 februarie 2012 12:09:56
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");

int viz[100001],n,m,cc;
struct nod {
   int info;
   nod *next;
};

nod *La[100001];
void adaug_inceput(int x,int y) {
	nod *n;
	n=new(nod);
	n->info=x;
	n->next=La[y];
	La[y]=n;
	n=new(nod);
	n->info=y;
	n->next=La[x];
	La[x]=n;
}
	
void citire() {
 int i,x,y;
 fin>>n>>m;
 for(i=1;i<=m;i++) {
	 fin>>x>>y;
	adaug_inceput(x,y);
 } 
}
void df(int i) {
viz[i]=cc;
//fout<<i<<" ";
nod *nc=La[i];
while(nc!=NULL) {
	int y=nc->info;
if(viz[y]==0) df(y);
nc=nc->next;
}
}

int main() {
citire();
for(int i=1;i<=n;i++) 
	if(viz[i]==0) {
		cc++;
		df(i);
		//fout<<"\n";
	}
fout<<cc;
 return 0;
}