Pagini recente » Cod sursa (job #2363429) | Cod sursa (job #1443983) | Cod sursa (job #2318259) | Cod sursa (job #1734847) | Cod sursa (job #1267495)
#include <cstdio>
#include <vector>
using namespace std;
vector<int> g[100001];
bool vis[100001];
void dfs(int node)
{
vis[node] = 1;
for (int i = 0; i < g[node].size(); ++i)
if (!vis[g[node][i]])
dfs(g[node][i]);
}
int main()
{
FILE *in = fopen("dfs.in", "r");
FILE *out = fopen("dfs.out", "w");
int n, m;
fscanf(in, "%d%d", &n, &m);
for (int x, y; m > 0; --m)
{
fscanf(in, "%d%d", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
int sol = 0;
for (int i = 1; i <= n; ++i)
if (!vis[i])
{
sol++;
dfs(i);
}
fprintf(out, "%d\n", sol);
return 0;
}