Pagini recente » Cod sursa (job #692452) | Cod sursa (job #86859) | Cod sursa (job #1117638) | Cod sursa (job #2432428) | Cod sursa (job #1808334)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<int> v[100010];
deque<pair<int,int> > sol;
int n,m,i,s,x,y,rez[100010],viz[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++)
rez[i]=n+1;
sol.push_front(make_pair(s,0));
while(sol.size())
{
viz[sol.front().first]=1;
rez[sol.front().first]=sol.front().second;
for(auto it:v[sol.front().first])
if(viz[it]==0)
sol.push_back(make_pair(it,sol.front().second+1));
sol.pop_front();
}
for(i=1;i<=n;i++)
if(rez[i]==n+1)
g<<-1<<' ';
else
g<<rez[i]<<' ';
return 0;
}