Pagini recente » Cod sursa (job #938742) | Cod sursa (job #3125928) | Cod sursa (job #2098618) | Cod sursa (job #2024491) | Cod sursa (job #3319598)
#include<fstream>
#include<unordered_set>
#include<stack>
#include<vector>
#include<algorithm>
using namespace std ;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
void DFS (int start , vector<vector<int> > &adj , unordered_set<int> &nodes ){
if(adj[start].empty())
return ;
for(int j = 0; j < adj[start].size() ; j ++ ){
if(!nodes.count(adj[start][j])){
nodes.insert(adj[start][j]);
DFS(adj[start][j],adj,nodes) ;
}
}
}
int main(){
int n , m , x , y ;
cin >> n >> m ;
vector<vector<int> > adj(n+1) ;
for(int i = 1 ; i <= m ; i ++ ){
cin>>x>>y;
adj[x].push_back(y);
adj[y].push_back(x);
}
unordered_set<int> nodes ;
int count = 0 ;
for(int i = 1 ; i <= n ; i ++ ){
if(!nodes.count(i)){
count ++ ;
DFS(i,adj,nodes);
}
}
cout<<count;
return 0 ;
}