Pagini recente » Cod sursa (job #409709) | Cod sursa (job #1803489) | Cod sursa (job #1327264) | Cod sursa (job #1235222) | Cod sursa (job #1247738)
#include <iostream>
#include <vector>
#include <queue>
#include <stdio.h>
#define Nmax 100005
using namespace std;
vector<int> G[Nmax];
int n,m, nr;
int viz[Nmax];
void citire()
{
int x, y;
scanf("%d %d\n", &n, &m);
for(int i=1; i<=m; ++i)
{
scanf("%d %d\n", &x, &y);
G[x].push_back(y);
G[y].push_back(x);
}
}
void parcurgere(int vf)
{
viz[vf] = 1;
for(vector<int>::iterator it = G[vf].begin(); it != G[vf].end(); ++it)
if(!viz[*it])
parcurgere(*it);
}
int numarare()
{
for(int i =1; i<=n; ++i)
if(!viz[i])
{
parcurgere(i);
++nr;
}
return nr;
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
citire();
printf("%d ", numarare());
return 0;
}