Pagini recente » Cod sursa (job #2879479) | Cod sursa (job #2079606) | Cod sursa (job #2215240) | Cod sursa (job #1382290) | Cod sursa (job #632104)
Cod sursa(job #632104)
#include <cstdio>
#define N 100003
using namespace std;
int n, m, viz[N], nr;
struct nod
{
int x;
nod *urm;
} *a[N];
void add(nod *&p, int x)
{
nod *q = new nod;
q -> x = x;
q -> urm = p;
p = q;
}
void citire()
{
scanf ("%d %d ", &n, &m);
for (int i = 1; i <= m; ++ i)
{
int x, y;
scanf ("%d %d ", &x, &y);
if (x != y)
{
add (a[x], y);
add (a[y], x);
}
}
}
void dfs(int vf)
{
for (nod *i = a[vf]; i; i = i -> urm)
if (!viz[i -> x])
{
viz[i -> x] = nr;
dfs (i -> x);
}
}
void adancime()
{
for (int i = 1; i <= n; ++ i)
if (!viz[i])
{
viz[i] = (++ nr);
dfs (i);
}
printf ("%d\n", nr);
}
int main()
{
freopen ("dfs.in", "r", stdin);
freopen ("dfs.out", "w", stdout);
citire();
adancime();
return 0;
}