Pagini recente » Cod sursa (job #668195) | Cod sursa (job #2131162) | Cod sursa (job #442119) | Cod sursa (job #499370) | Cod sursa (job #2475365)
#include<fstream>
using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int t[3][1000003],dfs[100003],i,j,n,m,s,coada[100003],p=1,u=1,k,star[100003],cost[100003];
int element,coloana,vecin;
int main()
{
f>>n>>m>>s;
while(m!=0)
{
m--;
f>>i>>j;
if(i!=j)
{
k++;
t[0][k]=j;
t[1][k]=star[i];
star[i]=k;
}
}
coada[p]=s;
cost[s]=0;
while(p<=u)
{
element=coada[p];
coloana=star[element];
while(coloana)
{
vecin=t[0][coloana],coloana=t[1][coloana];
if(cost[vecin]==0)
cost[vecin]=cost[coada[p]]+1,coada[++u]=vecin;
}
p++;
}
cost[s]=0;
for(i=1;i<=n;i++)
if(cost[i]==0 && i!=s)
g<<"-1"<<" ";
else
g<<cost[i]<<" ";
}