Pagini recente » Cod sursa (job #271942) | Cod sursa (job #2775004) | Cod sursa (job #1075189) | Cod sursa (job #1013468) | Cod sursa (job #2181852)
#include<fstream>
#include<set>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
set<int>v[100005];
int n,m,x,y,k=1;
bool viz[100005];
void dfs(int x,int y) {
viz[x]=y;
for(set<int>::iterator it=v[x].begin();it!=v[x].end();it++) {
if(!viz[*it]) {
dfs(*it,y);
}
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++) {
f>>x>>y;
v[x].insert(y);
v[y].insert(x);
}
for(int i=1;i<=n;i++) {
if(viz[i]==0) {
dfs(i,k);
k++;
}
}
g<<k-1;
return 0;
}