Pagini recente » Istoria paginii runda/post_oji/clasament | Cod sursa (job #2630821) | Cod sursa (job #714683) | Cod sursa (job #616118) | Cod sursa (job #2222506)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
const int nmax=100000;
vector<int> g[nmax];
vector<int> viz;
vector<int>::iterator it;
void bfs(int u, int cc)
{
queue<int> q;
int v;
viz[u]=cc; q.push(u);
while(!q.empty())
{
u=q.front(); q.pop();
for(it=g[u].begin();it!=g[u].end();it++)
{
v=*it;
if(!viz[v])
{
viz[v]=cc;
q.push(v);
}
}
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
int n,m,u,v,i,cc;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d%d",&u,&v);
g[u].push_back(v);
g[v].push_back(u);
}
viz.assign(n+1,0);
cc=0;
for(i=1;i<=n;i++)
{
if(!viz[i])
{
++cc;
bfs(i,cc);
}
}
printf("%d", cc);
return 0;
}