Pagini recente » Borderou de evaluare (job #3165988) | Borderou de evaluare (job #1375020) | Cod sursa (job #3344253) | Cod sursa (job #3343238) | Cod sursa (job #655876)
Cod sursa(job #655876)
#include<stdio.h>
FILE *in,*out;
struct nod
{
int inf;
nod *adr;
};
int n,m;
nod *a[100001];
int v[100001];
void adaug(int x,int y)
{
nod *b=new nod;
b->adr=a[x];
b->inf=y;
a[x]=b;
}
void citire()
{
fscanf(in,"%d %d",&n,&m);
int x,y;
for (int i=1;i<=m;i++)
{
fscanf(in,"%d %d",&x,&y);
adaug(x,y);
adaug(y,x);
}
}
void dfs(int x)
{
v[x]=1;
nod * b=new nod;
b=a[x];
while (b)
{
if (!v[b->inf]) dfs(b->inf);
b=b->adr;
}
}
int main()
{
in=fopen("nr.in","r");
out=fopen("nr.out","w");
citire();
int nr=0;
for (int i=1;i<=n;i++) if (!v[i])
{
dfs(i);
nr++;
}
fprintf(out,"%d\n",nr);
return 0;
}