Pagini recente » Cod sursa (job #2434422) | Cod sursa (job #570665) | Borderou de evaluare (job #2013119) | Cod sursa (job #2541077) | Cod sursa (job #397086)
Cod sursa(job #397086)
#include<stdio.h>
int n,m,i,x,y,viz[100005],k;
struct nod
{
int inf;
nod *adr;
};
nod *l[200005],*p;
void dfs(int no)
{
nod *c;
viz[no]=k;
c=l[no];
while(c)
{
if(!viz[c->inf])
dfs(c->inf);
c=c->adr;
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%d %d",&x,&y);
p=new nod;
p->adr=l[x];
p->inf=y;
l[x]=p;
p=new nod;
p->adr=l[y];
p->inf=x;
l[y]=p;
}
k=1;
for(i=1;i<=n;i++)
if(!viz[i])
{
dfs(i);
k++;
}
printf("%d",k-1);
return 0;
}