Cod sursa(job #158230)

Utilizator mike4problemsRadu Gabriel mike4problems Data 13 martie 2008 15:41:19
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
using namespace std;

#define N 100001
#define M 400001

ifstream f("sortaret.in");
ofstream g("sortaret.out");

int n,m,viz[N];
int start[N],list[M][2];
int nc;

void df(int k)
{
	viz[k]=1;
	for(int i=start[k];i;i=list[i][0])
		if(!viz[list[i][1]]) df(list[i][1]);
}

int main()
{
	int i,j,k=0;
	f>>n>>m;
	while(m--)
	{
		f>>i>>j;
		list[++k][1]=j;
		list[k][0]=start[i];
		start[i]=k;
		list[++k][1]=i;
		list[k][0]=start[j];
		start[j]=k;
	}
	for(i=1;i<=n;i++)
		if(!viz[i]) df(i),nc++;
	g<<nc<<'\n';
	return 0;
}