Pagini recente » Cod sursa (job #2067038) | Cod sursa (job #1376130) | Cod sursa (job #651815) | Cod sursa (job #2869605) | Cod sursa (job #2742955)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
#define NMAX 100005
int n, m, nr;
vector<int> G[NMAX];
bitset<NMAX> viz;
void citire() {
f >> n >> m;
int n1, n2;
for (int i = 0; i < m; ++i) {
f >> n1 >> n2;
G[n1].push_back(n2);
G[n2].push_back(n1);
}
}
void DFS(int nod) {
viz.set(nod);
for (auto &nod2:G[nod])
if (!viz[nod2])
DFS(nod2);
}
void parcurgere() {
for (int i = 1; i <= n; ++i)
if (!viz[i]) {
nr++;
DFS(i);
}
}
int main() {
citire();
parcurgere();
g << nr;
return 0;
}