Pagini recente » Cod sursa (job #2282523) | Cod sursa (job #1219346) | Istoria paginii runda/avram_iancu_preoji_bis/clasament | Cod sursa (job #1194315) | Cod sursa (job #739270)
Cod sursa(job #739270)
#include<cstdio>
#include<stdlib.h>
#define nmax 100003
using namespace std;
int *A[nmax],v[nmax],i, j, n, m, x ,y ;
void parcurge(int k)
{
int i;
v[k] = 1;
for(i = 1; i <= A[k][0] ;i++)
if(v[A[k][i]] == 0 )
parcurge(A[k][i]);
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
int Nr = 0;
scanf("%ld %ld",&n,&m);
for(i = 1; i <= n ;i++)
{
A[i] = (int *) realloc(A[i], sizeof(int));
A[i][0] = 0;
}
for(i = 1; i<=m ;i++)
{
scanf("%ld %ld",&x,&y);
A[x][0] ++ ;
A[x] = (int *) realloc(A[x] ,(A[x][0] + 1)* sizeof(int));
A[x][A[x][0]] = y;
A[y][0] ++;
A[y] = (int *) realloc(A[y], (A[y][0] + 1 ) * sizeof(int));
A[y][A[y][0]] = x;
}
for(i = 1; i <= n ;i++)
if(v[i]==0)
{
Nr++;
parcurge(i);
}
printf("%ld",Nr);
return 0;
}