Pagini recente » Cod sursa (job #2869149) | Cod sursa (job #2099455) | Cod sursa (job #730729) | Cod sursa (job #43553) | Cod sursa (job #1808300)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
void df(int,int);
vector<int> v[100010];
int n,m,s,i,x,y,sol[100010];
int main()
{
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
v[x].push_back(y);
}
for(i=1;i<=n;i++)
sol[i]=n+1;
df(s,0);
for(i=1;i<=n;i++)
if(sol[i]==n+1)
g<<-1<<' ';
else
g<<sol[i]<<' ';
return 0;
}
void df(int s,int s1)
{
sol[s]=min(sol[s],s1);
for(auto it:v[s])
if(sol[it]>s1+1)
df(it,s1+1);
}