Pagini recente » Cod sursa (job #159813) | Cod sursa (job #1850531) | Cod sursa (job #1624263) | Cod sursa (job #2963698) | Cod sursa (job #1897957)
#include <fstream>
#include <vector>
#include <queue>
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
int main()
{
int n, m;
fin >> n >> m;
std::vector<int> p[n + 1];
std::vector<bool> v(n+1, false);
int res = 0;
for(int i = 0 ; i < m; i++) {
int x, y;
fin>> x >> y;
p[x].push_back(y);
p[y].push_back(x);
}
for(int i = 1; i < n+1; i++) {
if(v[i])
continue;
res++;
std::queue<int> q;
q.push(i);
v[i] = true;
while(!q.empty()) {
int x = q.front();
q.pop();
for(int aux:p[x]) {
if(!v[aux]) {
v[aux] = true;
q.push(aux);
}
}
}
}
fout<<res;
return 0;
}