Pagini recente » Cod sursa (job #723930) | Cod sursa (job #1698281) | Cod sursa (job #1710939) | Cod sursa (job #783709) | Cod sursa (job #1830948)
#include <stdio.h>
#include <queue>
using namespace std;
FILE*f=fopen("dfs.in","r");
FILE*g=fopen("dfs.out","w");
struct nod
{
int inf;
nod *urm;
}*v[100010];
int viz[100010],s[100010];
void adaug(nod *&prim,int x)
{
nod* nou;
nou = new nod;
nou->inf=x;
nou->urm=prim;
prim=nou;
}
void DF(int i)
{
nod *j;
viz[i]=1;
for (j=v[i];j!=NULL;j=j->urm)
if (!viz[j->inf]) DF(j->inf);
}
int main()
{
int n,m,i,x,y,nr=0;
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
adaug(v[x],y);
adaug(v[y],x);
}
for (i=1;i<=n;i++)
{
if (!viz[i]) {DF(i);nr++;}
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}