Pagini recente » Cod sursa (job #3238828) | Cod sursa (job #1311778) | Cod sursa (job #287611) | Cod sursa (job #476254) | Cod sursa (job #394106)
Cod sursa(job #394106)
#include <iostream>
#define NMAX 100001
using namespace std;
int N,M;
typedef struct nod{int x;nod* nxt;}*LISTA;
void citire(),adaugare(LISTA&,int),DFS(int);
LISTA v[NMAX];
int vizitat[NMAX];
int main()
{
int i,c=0;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
citire();
for(i=1;i<=N;i++)
if(!vizitat[i])DFS(i),c++;
cout<<c;
return 0;
}
void DFS(int x)
{
vizitat[x]=1;
for(LISTA p=v[x];p;p=p->nxt)
if(!vizitat[p->x])DFS(p->x);
}
void adaugare(LISTA &l, int y)
{
LISTA a = new nod;
a->x = y;
a->nxt = l;
l=a;
}
void citire()
{
int i,x,y;
cin>>N>>M;
for(i=0;i<M;i++)
{
cin>>x>>y;
adaugare(v[x],y);
adaugare(v[y],x);
}
}