Pagini recente » Cod sursa (job #1115974) | Cod sursa (job #1319780) | Cod sursa (job #1443543) | Cod sursa (job #2832952) | Cod sursa (job #1808339)
#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);
}
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(viz[i]==0)
g<<-1<<' ';
else
g<<rez[i]<<' ';
return 0;
}