Pagini recente » Cod sursa (job #2091980) | Cod sursa (job #2962210) | Cod sursa (job #2571987) | Cod sursa (job #1798410) | Cod sursa (job #1702702)
#include<fstream>
#include<iostream>
using namespace std;
int a[10][10],c[20],viz[10];
int n,m,prim,ultim,varf;
ifstream f("dfs.in");
ofstream g("dfs.out");
void bf_iterativ() //parcurgerea in latime
{int k;
while(prim<=ultim)
{varf=c[prim];
for(k=1;k<=n;k++)
if(a[varf][k]==1&&viz[k]==0) //il adaug pe k in coada daca este vecin pt. varf si nu a fost vizitat
{ultim++;
c[ultim]=k;
viz[k]=1;}
prim++;
}
}
int main()
{
int x,y;
f>>n>>m;
for(int i=1;i<=m;i++)
{f>>x>>y;
a[x][y]=1;
}
for(int i=1;i<=n;i++){
viz[i]=0;
}
int gConexe=0;
int nd;
for(int i=1;i<=n;i++)
if(viz[i]==0)
{
nd=i;
viz[nd]=1;
prim=ultim=1;
c[prim]=nd;
bf_iterativ();
gConexe++;
}
g<<gConexe;
}