Pagini recente » Cod sursa (job #3250219) | Cod sursa (job #629239) | Cod sursa (job #583369) | Cod sursa (job #1426083) | Cod sursa (job #1417320)
#include<iostream>
#include<fstream>
#include<vector>
#define nmax 1000001
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> v[nmax];
int cost[nmax],coada[nmax],gg[nmax];
void bfs(int nod)
{
int l=1;
cost[nod]=0;
coada[l]=nod;
int i,j;
for(i=1;i<=l;i++)
for(j=0;j<=gg[coada[i]];j++)
if(cost[v[coada[i]][j]]==-1)
{
l++; coada[l]=v[coada[i]][j];
cost[coada[l]]=cost[coada[i]]+1;
}
}
int main()
{
int i,j,n,m,x,y,s;
f>>n>>m>>s; //de la s la i
while(m>0)
{
f>>x>>y;
v[x].push_back(y);
m--;
}
for(i=1;i<=n;i++) {gg[i]=v[i].size();cost[i]=-1;}
bfs(s);
for(i=1;i<=n;i++) g<<cost[i]<<" ";
f.close();
g.close();
return 0;
}