Pagini recente » Cod sursa (job #1286211) | Istoria paginii runda/9i_beclean/clasament | Cod sursa (job #1419842) | Istoria paginii runda/preobi | Cod sursa (job #504465)
Cod sursa(job #504465)
#include <stdio.h>
int n, m, viz[100005], cnt;
struct graf
{
int x;
graf *next;
} *L[100005];
void add(graf *& prim, int val)
{
graf *p = new graf;
p -> x = val;
p -> next = prim;;
prim= p;
}
void citire()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for (int i = 0; i < m; i++)
{
int x,y;
scanf("%d %d",&x,&y);
add(L[x], y);
add(L[y], x);
}
}
void DFS(int nod)
{
viz[nod] = 1;
for (graf *p = L[nod]; p != NULL; p = p -> next)
if (!viz[p -> x])
DFS(p -> x);
}
int numar()
{
int nc = 0;
for(int i=1;i<=n;i++)
if(viz[i] == 0)
{
nc++;
DFS(i);
}
return nc;
}
int main()
{
citire();
printf("%d\n",numar());
return 0;
}