Pagini recente » Cod sursa (job #2505026) | Cod sursa (job #1404649) | Cod sursa (job #1650601) | Cod sursa (job #2386601) | Cod sursa (job #278272)
Cod sursa(job #278272)
//bfs
#include <fstream.h>
#include <iostream.h>
//#include <conio.h>
#define NMax 10
int m,n,s,u,i,a[NMax][NMax],viz[NMax],coada[3*NMax],unde[NMax],un,cat[NMax];
void citire()
{
ifstream fin("bfs.in");
int x,y;
fin>>n>>m>>s;
for(int i1=1; i1<=m; i1++) { fin>>x>>y;
a[x][y]=1;
if(x==y) unde[++un]=x;
viz[i1]=0;
}
fin.close();
}
void bfs(int i2, int last)
{
int j;
for(j=1; j<=n; j++)
if(j!=last) {
if((a[coada[i2]][j]==1) && (viz[j]==0))
{ u++;
coada[u]=j;
viz[j]=1;
}
if (i2<=u) bfs(i2+1, last); }
else cat[++i]=u;
}
int main()
{ ofstream fout("bfs.out");
citire();
viz[s]=1;
coada[1]=s;
u=1;
for (int i3=1; i3<=n; i3++) bfs(s,i3);
/* for(int i3=1; i3<=n; i3++)// cout<<coada[i]<<" ";
if (coada[i3]==0) coada[i3]=-1; */
for(int i4=1; i4<=n; i4++) fout<<cat[i4]<<" ";
// getche();
fout.close();
return 0;
}