Cod sursa(job #186317)

Utilizator alextheroTandrau Alexandru alexthero Data 27 aprilie 2008 17:01:38
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#include <string.h>
#include <vector>

#define pb push_back
#define nmax 100005

using namespace std;

int n, m, nx, ny, sol;
int v[nmax];
vector <int> e[nmax];

void dfs(int x)
{
	v[x] = 1;
	for(int i = 0; i < (int)e[x].size(); i++)
		if(!v[e[x][i]]) dfs(e[x][i]);
}

int main()
{
	freopen("dfs.in", "r", stdin);
	freopen("dfs.out", "w", stdout);

	scanf("%d%d", &n, &m);
	for(int i = 1; i <= m; i++)
	{
		scanf("%d%d", &nx, &ny);
		e[nx].pb(ny);
		e[ny].pb(nx);
	}

	for(int i = 1; i <= n; i++)
		if(!v[i])
		{
			sol++;
			dfs(i);
		}

	printf("%d\n", sol);
	return 0;
}