Pagini recente » Cod sursa (job #2075959) | Cod sursa (job #24971) | Cod sursa (job #1544727) | Cod sursa (job #2835927) | Cod sursa (job #1808319)
#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];
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())
{
rez[sol.front().first]=sol.front().second;
for(auto it:v[sol.front().first])
if(rez[it]>sol.front().second+1)
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;
}