Pagini recente » Cod sursa (job #1255782) | Cod sursa (job #1432932) | Cod sursa (job #849360) | Cod sursa (job #1962138) | Cod sursa (job #2222951)
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
const int NMAX=100000;
vector<int>G[NMAX+5];
vector<int>viz;
vector<int>:: iterator it;
void bfs(int u, int cc)
{
int v;
queue<int>q;
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,cc;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&u,&v);
G[u].push_back(v);
G[u].push_back(u);
}
viz.assign(n+1,0);
cc=0;
for(int i=1;i<=n;i++)
{
if(!viz[i])
{
++cc;
bfs(i,cc);
}
}
printf("%d",cc);
return 0;
}