Pagini recente » Cod sursa (job #3212013) | Cod sursa (job #736243) | Cod sursa (job #998710) | Cod sursa (job #2116622) | Cod sursa (job #2551602)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, nr, vf[400001], urm[400001], last[100001];
bitset <100001> viz;
void adauga(int nod, int v){
vf[++nr] = v;
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]);
}
void citire(){
fin>>n>>m;
for(int i, j, k = 1; k<=m; k++)
{
fin>>i>>j;
adauga(i, j);
adauga(j, i);
}
}
int main()
{
citire();
int nrComp = 0;
for(int i=1; i<=n; i++)
if(!viz[i])
{
dfs(i);
nrComp ++;
}
fout<<nrComp;
return 0;
}