Cod sursa(job #2193658)

Utilizator SebastianGiurgiuGiurgiu Sebastian Mircea SebastianGiurgiu Data 10 aprilie 2018 20:56:58
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<vector>
#define infinty INT_MAX

const int Nlim = 100005;

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

int N, M, x, y;
std::vector<int> Muchii[Nlim];
bool vizitat[Nlim];
int insule = 0;

void DFS(int s) {

	vizitat[s] = true;
	for (unsigned int i = 0; i < Muchii[s].size(); i++) {

		int vecin = Muchii[s][i];
		if (!vizitat[vecin])
			DFS(vecin);
	}

}



void citire() {

	f >> N >> M;

	for (int i = 1; i <= M; i++) {
		f >> x >> y;
		Muchii[x].push_back(y);
		Muchii[y].push_back(x);

	}

	for (int i = 1; i <= N; i++) {

		if (!vizitat[i]) {
			insule += 1;
			DFS(i);
		} }

	g << insule<<"\n";
}

int main() {

	citire();
	return 0;
}