Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/kristomark | Monitorul de evaluare | Statistici Vlad Oancea (vladutelu) | Cod sursa (job #3361738)
#include <fstream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string>
#include<unordered_map>
#include<map>
#include<climits>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
void dfs(int nod,vector<vector<int>>&v,vector<bool>&viz){
viz[nod]=true;
// cout<<nod<<" ";
for(int i=0;i<v[nod].size();i++){
int vec=v[nod][i];
if(!viz[vec]){
dfs(vec,v,viz);
}
}
}
int main()
{
int n,m;
cin>>n>>m;
vector<vector<int>>v(n+1);
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
// for(int i=1;i<=n;i++)sort(v[i].begin(),v[i].end());
vector<bool>vaz(n+1,false);
int ans=0;
for(int i=1;i<=n;i++){
if(vaz[i]==false){
ans++;
dfs(i,v,vaz);
}
}
cout<<ans;
return 0;
}