Pagini recente » Cod sursa (job #2049068) | Cod sursa (job #2293791) | Cod sursa (job #172653) | Profil M@2Te4i | Cod sursa (job #232693)
Cod sursa(job #232693)
#include<stdio.h>
struct Nod {
int x;
Nod *next;
};
Nod * a[100001];
int m, s, x, y, n, nc;
char viz[100001];
int insert(Nod * &u, int val)
{
Nod * v = new Nod;
v -> x = val;
v -> next = u;
u = v;
}
int dfs(int s)
{
for(Nod *it = a[s]; it; it = it -> next)
if (!viz[it->x])
{
viz[it->x] = nc;
dfs(it->x);
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d %d",&n, &m, &s);
for(int i = 1; i <= m; i++)
{
scanf("%d %d",&x,&y);
insert(a[x],y);
insert(a[y],x);
}
for(int i = 1; i <= n; i++)
if (!viz[i])
{
nc++;
dfs(i);
}
printf("%d \n",nc);
return 0;
}