Pagini recente » Cod sursa (job #1873559) | Cod sursa (job #2270728) | Cod sursa (job #2199328) | Cod sursa (job #251716) | Cod sursa (job #2400583)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
const int dim = 100001;
vector<int>graph[dim];
const int infinity = 10000000;
int components, nodes, edges;
bool check[dim];
void input() {
in >> nodes >> edges;
for (int i = 1; i <= edges; i++) {
int u, v;
in >> u >> v;
graph[u].push_back(v);
graph[v].push_back(u);
}
}
void dfs(int node) {
check[node] = true;
for (size_t j = 0; j < graph[node].size(); j++) {
int vecin = graph[node][j];
if (!check[vecin]) {
dfs(vecin);
}
}
}
int main() {
input();
for (int i = 1; i <= nodes; i++) {
if (!check[i]) {
components++;
dfs(i);
}
}
out << components;
return 0;
}