Pagini recente » Cod sursa (job #2869553) | Cod sursa (job #424260) | Cod sursa (job #2569509) | Cod sursa (job #1529806) | Cod sursa (job #2690480)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, x, y, conex;
vector<vector<int>> vertex;
vector<bool> vis;
void dfs(int node) {
vis[node] = 1;
for(unsigned int i = 0; i < vertex[node].size(); i++) {
if(!vis[vertex[node][i]]) {
dfs(vertex[node][i]);
}
}
}
int main() {
fin >> n >> m;
vertex.reserve(n+1);
vis.reserve(n+1);
for(int i = 0; i < m; i++) {
fin >> x >> y;
vertex[x].push_back(y);
vertex[y].push_back(x);
}
for(int i = 1; i <= n; i++) {
if(!vis[i]) {
conex++;
dfs(i);
}
}
fout << conex;
fin.close();
fout.close();
return 0;
}