Pagini recente » Cod sursa (job #1057647) | Cod sursa (job #1425092) | Cod sursa (job #1664747) | Cod sursa (job #921870) | Cod sursa (job #660406)
Cod sursa(job #660406)
#include <fstream>
#include <vector>
#define MAXN 100000
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,coada[MAXN],viz[MAXN],s;
vector <int> muchii[MAXN];
void citire()
{
f>>n>>m>>s;
for (int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
muchii[x].push_back(y);
}
}
void bf(int s)
{
int p,u,i,x;
p=0;
u=1;
for (i=1;i<=n;i++)
viz[i]=-1;
coada[u]=s;
viz[s]=0;
while(p!=u)
{
p++;
x=coada[p];
for(i=0;i<muchii[x].size();i++)
{
if(viz[muchii[x][i]]==-1)
{
u++;
coada[u]=muchii[x][i];
viz[muchii[x][i]]=viz[x]+1;
}
}
}
}
void scriere()
{
for(int i=1;i<=n;i++)
g<<viz[i]<<" ";
}
int main()
{
citire();
bf(s);
scriere();
return 0;
}