Pagini recente » Cod sursa (job #562291) | Cod sursa (job #1732584) | Cod sursa (job #1641644) | Cod sursa (job #916898) | Cod sursa (job #1289129)
#include <cstdio>
using namespace std;
FILE *in=fopen ("dfs.in","r");
FILE *out=fopen ("dfs.out","w");
int n,m,lst[100000],vf[200000],urm[200000],contor,vizitat[100000];
void adauga (int x,int y)
{
vf[++m]=y;
urm[m]=lst[x];
lst[x]=m;
}
void dfs (int x)
{
while (x<=n)
{
if (!vizitat[x])
{
int p,y;
p=lst[x];
while (p!=0)
{
y=vf[p];
vizitat[y]=true;
p=urm[p];
}
contor++;
}
x++;
}
fprintf(out,"%d",contor);
}
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);
}
dfs(1);
}
int main()
{
citire();
return 0;
}