Pagini recente » Cod sursa (job #519726) | Cod sursa (job #3323898) | Cod sursa (job #518325) | Cod sursa (job #3323610) | Cod sursa (job #3314514)
#include <iostream>
#include <fstream>
#include <vector>
std::ifstream fin("dfs.in");
std::ofstream fout("dfs.out");
void dfs(std::vector<bool> &viz,int i,std::vector <std::vector<int>> &lista){
viz[i]=true;
for(int j=0;j<lista[i].size();j++){
if(viz[lista[i][j]]==false){
dfs(viz,lista[i][j],lista);
}
}
}
int main(){
int n,m,x,y,nr=0;
fin>>n>>m;
std::vector <bool>viz (n+1);
std::vector <std::vector<int>> lista(n+1);
while(m){
fin>>x>>y;
lista[x].push_back(y);
lista[y].push_back(x);
m--;
}
for(int i=1;i<=n;i++){
if(viz[i]==false){
nr++;
dfs(viz,i,lista);
}
}
fout<<nr;
// for(int i=1;i<=n;i++){
// std::cout<<i<<": ";
// for(int j=0;j<lista[i].size();j++){
// std::cout<<lista[i][j]<<" ";
// }
// std::cout<<"\n";
// }
//fout<<nr;
return 0;
}