Pagini recente » Cod sursa (job #1615092) | Cod sursa (job #2202291) | Profil KangJiYoung | Cod sursa (job #1998582) | Cod sursa (job #3124261)
#include <iostream>
#include <fstream>
#include <vector>
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
void dfs(std::vector<std::vector<int>> const &adj, int node, std::vector<bool> &visited) {
visited[node] = true;
for(auto n : adj[node]) {
if(!visited[n])
dfs(adj, n, visited);
}
}
int main() {
int n, m;
fin >> n >> m;
std::vector<std::vector<int>> adj(n);
while(m--) {
int a, b;
fin >> a >> b;
a--, b--;
adj[a].push_back(b);
adj[b].push_back(a);
}
std::vector<bool> visited(n, false);
int cnt{};
for(int i = 0; i<n; i++) {
if(!visited[i]) {
cnt++;
dfs(adj, i, visited);
}
}
fout << cnt << '\n';
return 0;
}