Pagini recente » Cod sursa (job #194987) | Monitorul de evaluare | Cod sursa (job #1623540) | Cod sursa (job #1258968) | Cod sursa (job #2793764)
#include <fstream>
#include <vector>
#define NMAX 100000
using namespace std;
ifstream cin ("dfs.in");
ofstream cout ("dfs.out");
bool mark[NMAX + 1];
vector <int> vnext[NMAX + 1];
void dfs(int node) {
int n, i;
mark[node] = 1;
n = vnext[node].size();
for (i = 0; i < n; i++)
if (!mark[vnext[node][i]])
dfs(vnext[node][i]);
}
int main() {
int n, m, i, a, b, sol;
cin >> n >> m;
for (i = 0; i < m; i++) {
cin >> a >> b;
vnext[a].push_back(b);
vnext[b].push_back(a);
}
sol = 0;
for (i = 1; i <= n; i++)
if (!mark[i]) {
sol++;
dfs(i);
}
cout << sol;
return 0;
}