Pagini recente » Cod sursa (job #636130) | Cod sursa (job #2756425) | Cod sursa (job #1612468) | Cod sursa (job #1806391) | Cod sursa (job #1952846)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int NMAX = 100001;
int n, m;
int sol;
vector<int> v[NMAX];
bool used[NMAX];
void dfs(int nod) {
for (vector<int>::iterator it = v[nod].begin(); it != v[nod].end(); ++it) {
if (!used[*it]) {
used[*it] = true;
dfs(*it);
}
}
}
int main() {
fin >> n >> m;
for (int i = 1, nod1, nod2; i <= m; ++i) {
fin >> nod1 >> nod2;
v[nod1].push_back(nod2);
v[nod2].push_back(nod1);
}
sol = 0;
for (int i = 1; i <= n; ++i) {
if (!used[i]) {
used[i] = true;
++sol;
dfs(i);
}
}
fout << sol << '\n';
return 0;
}