Pagini recente » Borderou de evaluare (job #2344062) | Cod sursa (job #1592248) | Borderou de evaluare (job #1573118) | Cod sursa (job #1205067)
#include <cstdio>
#include <vector>
using namespace std;
#define MAX 100005
void ffill(int nod);
vector<int> lista[MAX];
int viz[MAX];
int n, m, x, y, sol;
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
int i;
scanf("%d%d",&n,&m);
for(i=1; i<=m; i++)
{
scanf("%d%d",&x,&y);
lista[x].push_back(y);
lista[y].push_back(x);
}
for(i=1; i<=n; i++)
if(viz[i]==0)
{
ffill(i);
sol++;
}
printf("%d\n",sol);
return 0;
}
void ffill(int nod)
{
int i;
for(i=0; i<lista[nod].size(); i++)
if(viz[lista[nod][i]]==0)
{
viz[lista[nod][i]]=1;
ffill(lista[nod][i]);
}
}