Pagini recente » Cod sursa (job #1600181) | Diferente pentru problema/ape intre reviziile 11 si 4 | Cod sursa (job #854270) | Cod sursa (job #854273) | Cod sursa (job #854263)
Cod sursa(job #854263)
#include<cstdio>
#include<algorithm>
using namespace std;
#define nMax 100001
int N, M, use[nMax], T[nMax];
struct lista {
int nod;
lista *urm;
} *G[nMax];
void add(int x, int y )
{
lista *p;
//p = new lista;
p->nod = y;
p->urm = G[x];
G[x] = p;
}
void Read()
{
freopen ( "dfs.in", "r", stdin );
scanf ( "%d %d", &N, &M );
int i, j;
for(; M; M--)
{
scanf ( "%d %d", &i, &j );
add(i, j);
add(j, i);
}
fclose(stdin);
}
void DF(int sursa)
{
lista *p;
use[sursa] = 1;
for(p=G[sursa]; p!=NULL; p=p->urm)
if( !use[p->nod] )
{
T[p->nod] = sursa;
DF(p->nod);
}
}
int main()
{
Read();
int Nr=0;
for(int i=1; i<=N; i++)
if( !use[i] )
{
DF(i);
Nr++;
}
freopen ( "dfs.out", "w", stdout );
printf ( "%d\n", Nr );
fclose(stdout);
return 0;
}