Pagini recente » Cod sursa (job #1317354) | Cod sursa (job #965048) | Cod sursa (job #1712205) | Cod sursa (job #747175) | Cod sursa (job #1425114)
#include <iostream>
#include <fstream>
#include <vector>
#define NMAX 100001
const char IN[] = "dfs.in", OUT[] = "dfs.out";
using namespace std;
int N;
vector<int> G[NMAX];
bool state[NMAX];
inline void readData() {
freopen(IN, "r", stdin);
int M;
scanf(" %d%d", &N, &M);
for (int i = 0; i < M; ++i) {
int s, d;
scanf(" %d%d", &s, &d);
G[s].push_back(d);
G[d].push_back(s);
}
fclose(stdin);
}
void DFS(int nod){
state[nod] |= 1;
for (const int n : G[nod]) {
if (!state[n]) DFS(n);
}
}
int main() {
int nrCC = 0;
readData();
for (int i = 1; i <= N; ++i) {
if (!state[i]) {
++nrCC;
DFS(i);
}
}
freopen(OUT, "w", stdout);
printf("%d \n", nrCC);
fclose(stdout);
}