Pagini recente » Cod sursa (job #354625) | Cod sursa (job #2305914) | Cod sursa (job #2472418) | Cod sursa (job #1529902) | Cod sursa (job #1025031)
#include <cstdio>
using namespace std;
struct Nod
{
int Inf;
Nod *Urm;
}*Sir[100005];
int Viz[100005];
int N,M,Nr;
void Add(Nod *&Prim,int x)
{
Nod *nou;
nou=new Nod;
nou->Inf=x;
nou->Urm=Prim;
Prim=nou;
}
void Citire()
{
int x,y;
scanf("%d %d",&N,&M);
for(int i=0;i<M;++i)
{
scanf("%d %d",&x,&y);
Add(Sir[x],y);
Add(Sir[y],x);
}
}
void DFS(int x)
{
Viz[x]=1;
for(Nod *P=Sir[x];P!=NULL;P=P->Urm)
if(!Viz[P->Inf])
DFS(P->Inf);
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
Citire();
for(int i=1;i<=N;++i)
if(!Viz[i])
{
DFS(i);
Nr++;
}
printf("%d",Nr);
return 0;
}