Pagini recente » Cod sursa (job #2188860) | Cod sursa (job #1871306) | Cod sursa (job #2936259) | Cod sursa (job #1572309) | Cod sursa (job #2743894)
#include <iostream>
#include <fstream>
struct NOD {
int v;
NOD* urm;
};
NOD* noduri[100001];
void Add(NOD*& dest, int Y) {
NOD* nod = new NOD();
nod->v = Y;
nod->urm = dest;
dest = nod;
}
int N, M, X, Y;
int v[100001];
void DFS(int k) {
v[k] = 1;
NOD* nod = noduri[k];
while (nod) {
if (!v[nod->v])
DFS(nod->v);
nod = nod->urm;
}
}
int main() {
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
fin >> N >> M;
for (int i = 0; i < M; ++i) {
fin >> X >> Y;
Add(noduri[X], Y);
Add(noduri[Y], X);
}
fin.close();
int nrc = 0;
for (int i = 1; i <= N; ++i) {
if (v[i] == 0) {
++nrc;
DFS(i);
}
}
fout << nrc;
fout.close();
return 0;
}