Pagini recente » Cod sursa (job #2387901) | Cod sursa (job #1500600) | Cod sursa (job #2552662) | Cod sursa (job #756510) | Cod sursa (job #3168699)
#include <fstream>
#include<vector>
using namespace std;
int coada[100002], f[100002];
struct ura
{
vector<int>v;
}g[100002];
int main()
{
ifstream cin ("bfs.in");
ofstream cout("bfs.out");
int n, m, s, i, inc, sf, maxx=0, x, y, l;
cin>>n>>m>>s;
for (i=1;i<=m;i++)
{
cin>>x>>y;
g[x].v.push_back(y);
maxx=max(maxx, max(x, y));
}
inc=1;
sf=1;
coada[inc]=s;
while (inc<=sf)
{
l=g[coada[inc]].v.size();
for (i=0;i<l;i++)
{
if (f[g[coada[inc]].v[i]]==0&&g[coada[inc]].v[i]!=s)
{
sf++;
coada[sf]=g[coada[inc]].v[i];
f[g[coada[inc]].v[i]]=f[coada[inc]]+1;
}
}
inc++;
}
for (i=1;i<=maxx;i++)
{
if (f[i]==0&&i!=s)
{
cout<<"-1"<<" ";
}
else
{
cout<<f[i]<<" ";
}
}
return 0;
}