Pagini recente » Istoria paginii runda/prbd1 | Profil M@2Te4i | Cod sursa (job #1342331) | Monitorul de evaluare | Cod sursa (job #604464)
Cod sursa(job #604464)
#include<fstream>
using namespace std;
long x,y,n,i,m,nr;
struct nod{int info;nod *adr;} *v[100002];
short viz[100002],c[100002];
void bf(int nod)
{ long u=1,p=1;
c[1]=nod; viz[nod]=1;
while(p<=u)
{
nod=c[p];
while(v[nod])
{
if(!viz[v[nod]->info]){ u++; c[u]=v[nod]->info; viz[c[u]]=1;}
v[nod]=v[nod]->adr;
}
p++;
}
}
int main()
{
ifstream f("dfs.in");ofstream g("dfs.out");
f>>n>>m;
for(i=1;i<=m;i++)
{f>>x>>y;
//add nod
nod *p=new nod; p->info=y; p->adr=v[x]; v[x]=p;
nod *q=new nod; q->info=x; q->adr=v[y]; v[y]=q;
}
//copiez nodurile initiale
for(i=1;i<=n;i++)
if(!viz[i]) { nr++; bf(i);}
g<<nr;
f.close();g.close();
return 0;}