Pagini recente » Borderou de evaluare (job #3094404) | Cod sursa (job #3367139) | Cod sursa (job #3367109) | Cod sursa (job #3367099) | Cod sursa (job #3367051)
#include <bits/stdc++.h>
void DFS(int k, const std::vector<std::vector<int>>& L, std::vector<int>& viz)
{
viz[k] = 1;
for(const auto& w: L[k])
if(viz[w] == 0) DFS(w, L, viz);
}
int main()
{
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
int N{}, M{}, x, y;
fin >> N >> M;
std::vector<std::vector<int>> L(N+1);
std::vector<int> viz(N+1, 0);
for(int i = 0; i < M; i++)
{
fin >> x >> y;
L[x].push_back(y);
L[y].push_back(x);
}
int nr_conexe = 0;
for(int i = 1; i <= N; i++)
if(viz[i] == 0)
{
DFS(i, L, viz);
nr_conexe++;
}
fout << nr_conexe;
fin.close();
fout.close();
return 0;
}