Pagini recente » Cod sursa (job #474696) | Cod sursa (job #2377456) | Cod sursa (job #474462) | Cod sursa (job #2264501) | Cod sursa (job #1289134)
#include <cstdio>
using namespace std;
FILE *in=fopen ("dfs.in","r");
FILE *out=fopen ("dfs.out","w");
int n,m,lst[100001],vf[200001],urm[200001],contor,vizitat[100001];
void adauga (int x,int y)
{
vf[++m]=y;
urm[m]=lst[x];
lst[x]=m;
}
void dfs (int x)
{
int p,y;
p=lst[x];
while (p!=0)
{
y=vf[p];
vizitat[y]=true;
p=urm[p];
}
}
void citire ()
{
int a;
fscanf (in,"%d%d",&n,&a);
for (int i=0; i<a; i++)
{
int x,y;
fscanf (in,"%d%d",&x,&y);
adauga(x,y);
adauga(y,x);
}
for (int i=1;i<=n;i++)
{
if (!vizitat[i])
{
dfs(i);
contor++;
}
}
fprintf(out,"%d",contor);
}
int main()
{
citire();
return 0;
}