Pagini recente » Cod sursa (job #1358001) | Cod sursa (job #1227267) | Cod sursa (job #1022152) | Cod sursa (job #2419710) | Cod sursa (job #2407432)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
struct nod
{
int vf;
nod *urm;
}*v[100005];
int n,m,viz[100005],nr;
void citire()
{
fin>>n>>m;
int i,x,y;
nod *p,*q;
for(i=1;i<=n;++i)
v[i]=NULL;
for(i=1;i<=m;++i)
{
fin>>x>>y;
p=new nod;
p->vf=x;
p->urm=v[y];
v[y]=p;
q=new nod;
q->vf=y;
q->urm=v[x];
v[x]=q;
}
}
void df(int x,int nr)
{
viz[x]=nr;
for(nod *q=v[x];q;q=q->urm)
if(viz[q->vf]==0)
df(q->vf,nr);
}
int main()
{
citire();
int i;
for(i=1;i<=n;++i)
if(viz[i]==0)
{
++nr;
df(i,nr);
}
fout<<nr;
return 0;
}