Pagini recente » Cod sursa (job #2603324) | Cod sursa (job #660975) | Cod sursa (job #68221) | Cod sursa (job #2896638) | Cod sursa (job #1262977)
#include <iostream>
#include <cstdio>
#include <vector>
#define NMAX 100005
using namespace std;
vector<int> g[NMAX];
int n,m,viz[NMAX];
void read()
{
int a,b;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i)
{
scanf("%d%d",&a,&b);
g[a].push_back(b);
g[b].push_back(a);
}
}
void dfs(int k)
{
viz[k]=1;
for(vector<int>::iterator it=g[k].begin();it!=g[k].end();++it)
if(!viz[*it])
dfs(*it);
}
void solve()
{
int ncc=0;
for(int i=1;i<=n;++i)
if(!viz[i])
{
++ncc;
dfs(i);
}
printf("%d\n",ncc);
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
read();
solve();
return 0;
}