Cod sursa(job #2428571)

Utilizator Joystick6208Catalin Topala Joystick6208 Data 5 iunie 2019 19:59:21
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
#include <vector>
using namespace std;

#define maxsize 100005

int n, m, x, y, nr;
int viz[maxsize];
vector<int> gr[maxsize];

void dfs(int a)
{
	viz[a] = 1;

	int lg = gr[a].size();
	for(int i = 0; i < lg; ++i)
		if(viz[gr[a][i]] == 0)
			dfs(gr[a][i]);
}

int main()
{

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

	scanf("%d %d", &n, &m);

	for(int i = 0; i < m; ++i)
	{
		scanf("%d %d", &x, &y);

		gr[x].push_back(y);
		gr[y].push_back(x);
	}

	for(int i = 1; i <= n; ++i)
		if(viz[i] == 0)
		{
			dfs(i);
			++nr;
		}

	printf("%d", nr);

	return 0;
}