Pagini recente » Cod sursa (job #1524626) | Cod sursa (job #2748721) | Cod sursa (job #2244074) | Cod sursa (job #3285029) | Cod sursa (job #3211934)
#include <iostream>
#include <fstream>
#include <vector>
void DFS(const int nod, std::vector<bool>& visited, const std::vector<std::vector<int>> &graf) {
visited[nod] = true;
for(int i: graf[nod]) {
if(visited[i] == false) {
DFS(i, visited, graf);
}
}
}
int main() {
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
int noduri, muchii;
fin>>noduri>>muchii;
std::vector<std::vector<int>>graf(noduri+1);
for(int i = 0; i < muchii; i++) {
int a, b;
fin>>a>>b;
graf[a].push_back(b);
graf[b].push_back(a);
}
std::vector<bool>visited(noduri+1, false);
int contor = 0;
for(int i = 1; i <= noduri; i++) {
if(visited[i] == false) {
DFS(i, visited, graf);
++contor;
}
}
fout<<contor;
fout.close();
fin.close();
return 0;
}