Pagini recente » Cod sursa (job #1086752) | Cod sursa (job #3192313) | Cod sursa (job #1687475) | Cod sursa (job #2948218) | Cod sursa (job #1990017)
#include <iostream>
#include <fstream>
#include <vector>
void visit(std::vector<bool> &check, std::vector<int> *vertices, int curr) {
check[curr] = true;
for (int vertex : vertices[curr]) {
if (!check[vertex]) {
visit(check, vertices, vertex);
}
}
}
int main() {
std::ifstream fileIn("dfs.in");
std::ofstream fileOut("dfs.out");
int nV, nE;
fileIn >> nV >> nE;
std::vector<int> *vertices = new std::vector<int>[nV + 1]();
std::vector<bool> check(nV + 1, false);
int from, to;
for (int i(0); i < nE; i++) {
fileIn >> from >> to;
vertices[from].push_back(to);
vertices[to].push_back(from);
}
int vCount(0);
for (int i(1); i <= nV; i++) {
if (!check[i]) {
vCount++;
visit(check, vertices, i);
}
}
fileOut << vCount;
delete[] vertices;
fileIn.close();
fileOut.close();
return 0;
}