Pagini recente » Cod sursa (job #336212) | Cod sursa (job #2472524) | Cod sursa (job #2175802) | Cod sursa (job #1479851) | Cod sursa (job #2534537)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int const maxim = 100005;
vector<int> stocare[maxim];
queue<int> coada;
bool vizitat[maxim];
int n, m;
void citire() {
in >> n >> m;
int a, b;
for (int i = 1; i <= m; i++) {
in >> a >> b;
stocare[a].push_back(b);
stocare[b].push_back(a);
}
}
void dfs(int nodstart) {
vizitat[nodstart] = true;
for (size_t i = 0; i < stocare[nodstart].size(); i++) {
if (!vizitat[stocare[nodstart][i]])dfs(stocare[nodstart][i]);
}
}
void solve() {
int conexe = 0;
for (int i = 1; i <= n; i++) {
if (!vizitat[i]) {
conexe++;
dfs(i);
}
}
out << conexe;
}
int main() {
citire();
solve();
return 0;
}