Pagini recente » Cod sursa (job #1052618) | Cod sursa (job #1487275) | Cod sursa (job #762199) | Cod sursa (job #3133842) | Cod sursa (job #2418875)
#include <fstream>
#include <vector>
#include <queue>
#define nmax 100004
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,sp,x,y,dist[nmax];
vector <int> G[nmax];
queue <int> q;
int main()
{
f>>n>>m>>sp;
for (int i=1;i<=m;i++)
{
f>>x>>y;
G[x].push_back(y);
}
q.push(sp);
while (!q.empty())
{
int node=q.front();
q.pop();
for (auto ne:G[node])
if (dist[ne]==0 && ne!=sp)
{
dist[ne]=dist[node]+1;
q.push(ne);
}
}
for (int i=1;i<=n;i++)
{
if (i==sp) g<<0<<' ';
else if (dist[i]==0) g<<-1<<' ';
else g<<dist[i]<<' ';
}
f.close();
g.close();
return 0;
}