Pagini recente » Cod sursa (job #218779) | Cod sursa (job #968083) | Cod sursa (job #1257182) | Cod sursa (job #1849581) | Cod sursa (job #2380012)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream in ("bfs.in");
ofstream out ("bfs.out");
vector <int> v[100005];
queue <int> q;
int dist[100005];
int viz[100005];
int main()
{
int n,m,s,i,x,y;
in>>n>>m>>s;
for (i=1;i<=m;i++)
{
in>>x>>y;
v[x].push_back(y);
}
for (i=1;i<=n;i++)
dist[i]=-1;
q.push(s);
dist[s]=0;viz[s]=1;
while (!q.empty())
{
int index=q.front();
q.pop();
for (i=0;i<v[index].size();i++)
{
int vecin=v[index][i];
if (!viz[vecin])
{
viz[vecin]=1;
dist[vecin]=dist[index]+1;
q.push(vecin);
}
}
}
for (i=1;i<=n;i++)
out<<dist[i]<<" ";
return 0;
}