Pagini recente » Cod sursa (job #2754514) | Cod sursa (job #411284) | Cod sursa (job #2095280) | Cod sursa (job #2773876) | Cod sursa (job #430039)
Cod sursa(job #430039)
#include<stdio.h>
#define Nmax 100100
int N,M;
struct Nod{
int val;
Nod *next;} *l[Nmax];
int x,y,nr;
char viz[Nmax];
void adauga(int a,int p)
{
Nod *q= new Nod;
q->val=p;
q->next=l[a];
l[a]=q;
}
void make_df(int s)
{
viz[s]=1;
Nod *q=l[s];
while(q!=NULL)
{
if(viz[q->val]==0)
{
viz[q->val]=10;
make_df(q->val);
}
q=q->next;
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&N,&M);
for(int i=1;i<=M;++i)
{
scanf("%d%d",&x,&y);
adauga(x,y);
adauga(y,x);
}
for(int i=1;i<=N;++i)
{
if(viz[i]==0)
{
++nr;
make_df(i);
}
}
printf("%d",nr);
}