Pagini recente » Cod sursa (job #2072417) | Cod sursa (job #2960508) | Cod sursa (job #2214158) | Cod sursa (job #2680074) | Cod sursa (job #2693190)
#include <iostream>
#include <vector>
using namespace std;
struct Nod {
bool vizitat = false;
vector <int> from;
};
void Parcurgere(int i, vector <Nod> &nodes) {
nodes[i].vizitat = true;
for (int j = 0; j < nodes[i].from.size(); j++)
if (!nodes[nodes[i].from[j]].vizitat)
Parcurgere(nodes[i].from[j], nodes);
}
int main() {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
int n, m, x, y, i = 1, total = 0;
scanf("%d %d", &n, &m);
vector <Nod> nodes(n + 1);
while (m--) {
scanf("%d %d", &x, &y);
nodes[x].from.push_back(y);
nodes[y].from.push_back(x);
}
while (i <= n) {
Parcurgere(i, nodes);
while (i <= n && nodes[i].vizitat)
i++;
total++;
}
printf("%d", total);
return 0;
}