Pagini recente » Cod sursa (job #816894) | Cod sursa (job #1863419) | Cod sursa (job #1428342) | Cod sursa (job #2679364) | Cod sursa (job #2764727)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
#define DIM 100001
vector <int> v[DIM];
int n, m, nr, x, y, sel[DIM];
static inline void dfs(int k) {
sel[k] = 1;
for(auto e : v[k])
if(sel[e] == 0)
dfs(e);
}
int main() {
cin >> n >> m;
for(int i = 1; i <= m; i++) {
cin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
for(int i = 1; i <= n; i++)
if(sel[i] == 0) { ///cand gasesc un nod care nu a fost parcurs;
sel[i] = 1;
nr++; ///cresc nr de componente conexe;
dfs(i); ///parcurg toate nodurile din componenta actuala;
}
cout << nr;
return 0;
}