Pagini recente » Cod sursa (job #2506649) | Cod sursa (job #949821) | Cod sursa (job #1059067) | Cod sursa (job #239463) | Cod sursa (job #2846132)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
void dfs(int start, vector<bool> &seen, const vector<vector<int>> &adj)
{
for (int vecin : adj[start]) {
if (!seen[vecin]) {
seen[vecin] = true;
dfs(vecin, seen, adj);
}
}
}
int main(){
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
int n, m;
fin >> n >> m;
vector<vector<int>> adj(n+1);
for (int i = 0; i < m; ++i) {
int a, b;
fin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
vector<bool> seen(n+1, false);
int nrComp = 0;
for (int i = 1; i <= n; ++i) {
if (!seen[i]) {
++nrComp;
dfs(i, seen, adj);
}
}
fout << nrComp << endl;
}