Pagini recente » Cod sursa (job #676785) | Cod sursa (job #1046335) | Cod sursa (job #2576778) | Cod sursa (job #1084126) | Cod sursa (job #2516026)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int n,m;
int vf[400001],urm[400001],last[200001],nr;
bitset <200001> viz;
void adauga(int nod,int vec)
{
vf[++nr]=vec;
urm[nr]=last[nod];
last[nod]=nr;
}
void dfs(int nod)
{
viz[nod]=1;
for(int k=last[nod];k;k=urm[k])
if(!viz[ vf[k] ])
dfs(vf[k]);
}
int main()
{
freopen("fisier.in","r",stdin);
in>>n>>m;
for(int i,j,k=1;k<=m;k++)
{
in>>i>>j;
adauga(i,j);
adauga(j,i);
}
int compConv=0;
for(int i=1;i<=n;i++)
if(!viz[i])
{
dfs(i);
compConv++;
}
out<<compConv<<'\n';
return 0;
}