Pagini recente » Cod sursa (job #1901948) | Cod sursa (job #2210143) | Cod sursa (job #1495058) | Cod sursa (job #3308935) | Cod sursa (job #3308541)
#include<iostream>
#include<fstream>
#include<deque>
#include<vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int n, m;
vector<vector<int>> graph;
vector<int> visited;
void read() {
in>>n>>m;
graph.resize(n);
visited.resize(n, false);
int a, b;
for (int i=0; i<m; i++){
in>>a>>b;
graph[a-1].push_back(b-1);
graph[b-1].push_back(a-1);
}
}
void dfs(int node) {
visited[node] = true;
for (int k: graph[node]) {
if (!visited[k]) {
dfs(k);
}
}
}
void solve() {
int count = 0;
for (int i=0; i < n;i++){
if(!visited[i]) {
dfs(i);
count++;
}
}
out<<count<<endl;
}
int main() {
read();
solve();
return 0;
}