Pagini recente » Cod sursa (job #704358) | Cod sursa (job #1416000) | Cod sursa (job #3224660) | Cod sursa (job #3140065) | Cod sursa (job #2594623)
#include <cstdio>
#include <vector>
#include <cstring>
#define NMAX 100000
void dfs(int node, std::vector<int> *adj, char *visited) {
for (int i = 0; i < adj[node].size(); i++) {
if (!visited[adj[node][i]]) {
visited[adj[node][i]] = 1;
dfs(adj[node][i], adj, visited);
}
}
}
int main() {
std::vector<int> adj[NMAX + 1];
int n, x, y, cnt = 0;
long long m;
char visited[NMAX + 1] = {0};
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%lld", &n, &m);
//memset(visited, 0, (n + 1) * sizeof(char));
while (m--) {
scanf("%d%d", &x, &y);
adj[x].push_back(y);
adj[y].push_back(x);
}
for (int i = 1; i <= n; i++) {
if (visited[i] == 0) {
dfs(i, adj, visited);
cnt++;
}
}
printf("%d", cnt);
}