Pagini recente » Cod sursa (job #695041) | Cod sursa (job #522359) | Cod sursa (job #1632794) | Cod sursa (job #401353) | Cod sursa (job #2754781)
#include <iostream>
#include <fstream>
#include <vector>
void recursion(std::vector<int> adj[], std::vector<int> p, int node)
{
for (auto neigh : adj[node]) {
if (p[neigh] == 0) {
p[neigh] = node;
recursion(adj, p, neigh);
}
}
}
int main()
{
std::ifstream in("dfs.in");
std::ofstream out("dfs.out");
int n, m, cc_count = 0;
in >> n >> m;
std::vector<int> adj[n + 1];
std::vector<int> p(n + 1, 0);
for (int i = 0, to, from; i < m; i++) {
in >> from >> to;
adj[from].push_back(to);
adj[to].push_back(from);
}
for (int i = 1; i <= n; i++) {
if (p[i] == 0) {
cc_count++;
recursion(adj, p, i);
}
}
out << cc_count << std::endl;
}