Pagini recente » Cod sursa (job #19931) | Cod sursa (job #60568) | Cod sursa (job #244948) | Cod sursa (job #20568) | Cod sursa (job #2021326)
#include <cstdio>
#include <vector>
FILE *fin = fopen("dfs.in", "r");
FILE *fout = fopen("dfs.out", "w");
#define maxn 100000
std::vector<int> v[maxn + 1];
int viz[maxn + 1];
void dfs(int t) {
viz[t] = 1;
for (auto y : v[t])
if(viz[y] != 1)
dfs(y);
}
int main()
{
int n, m, x, y, rez = 0;
fscanf(fin, "%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
fscanf(fin, "%d%d", &x, &y);
v[x].push_back (y);
v[y].push_back (x);
}
for (int i = 1; i <= n; i++)
if (viz[i] != 1) {
dfs(i);
rez++;
}
fprintf(fout, "%d", rez);
return 0;
}