Cod sursa(job #1703658)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 17 mai 2016 12:59:07
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

vector<int> v[100005];

void read(int &N, int &M) {

	int x, y;

	f >> N >> M;
	for (int i = 0; i < M; ++i) {
		f >> x >> y;
		v[x].push_back(y);
		v[y].push_back(x);
	}
}

void dfs(int node, bool *visited) {

	visited[node] = true;

	for (auto &x : v[node]) {
		if (visited[x] == false) {
			dfs(x, visited);
		}
	}
}

int main()
{
	int N, M;
	bool visited[100005];
	read(N, M);
	int ans = 0;


	for (int i = 1; i <= N; ++i) {
		visited[i] = false;
	}

	for (int i = 1; i <= N; ++i) {
		if (visited[i] == false) {
			++ans;
			dfs(i, visited);
		}
	}

	g << ans << "\n";

	return 0;
}