Pagini recente » Cod sursa (job #1340748) | Cod sursa (job #1920643) | Cod sursa (job #1608158) | Cod sursa (job #1567132) | Cod sursa (job #261380)
Cod sursa(job #261380)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 100010
long n, m, sol;
long f[MAX_N];
long grad[MAX_N], *a[MAX_N];
void df(long nod)
{
long i;
f[nod] = 1;
for (i = 0; i < grad[nod]; ++i)
if (!f[a[nod][i]])
df(a[nod][i]);
}
int main()
{
long x, y, i, j;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%ld %ld", &n, &m);
for (i = 1; i <= m; ++i)
{
scanf("%ld %ld", &x, &y);
++grad[x];
++grad[y];
}
fclose(stdin);
freopen("dfs.in", "r", stdin);
scanf("%ld %ld", &n, &m);
for (i = 1; i <= n; ++i)
{
if (grad[i] > 0)
a[i] = new long[grad[i]];
grad[i] = 0;
}
for (i = 1; i <= m; ++i)
{
scanf("%ld %ld", &x, &y);
a[x][grad[x]++] = y;
a[y][grad[y]++] = x;
}
for (i = 1; i <= n; ++i)
{
if (!f[i])
{
++sol;
df(i);
}
}
printf("%ld\n", sol);
return 0;
}