Pagini recente » Cod sursa (job #608286) | Cod sursa (job #511458) | Cod sursa (job #2669911) | Cod sursa (job #2972515) | Cod sursa (job #1169389)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,x,y, dist[100000], top, i;
vector<int> v[100000];
queue<int> coada;
void bfs()
{
coada.push(s-1); dist[s-1]=1;
while(!coada.empty())
{
top=coada.front();
for(i=0;i<v[top].size();i++)
if(dist[v[top][i]]==0)
{ coada.push(v[top][i]); dist[v[top][i]]=dist[top]+1; }
coada.pop();
}
}
int main()
{
f>>n>>m>>s;
for(i=0;i<m;i++)
{
f>>x>>y;
v[x-1].push_back(y-1);
}
bfs();
for(i=0;i<n;i++)
g<<dist[i]-1<<" ";
f.close();g.close();
return 0;
}