Pagini recente » Cod sursa (job #189708) | Cod sursa (job #1255505) | Istoria paginii runda/bulangandit10/clasament | Cod sursa (job #2477343) | Cod sursa (job #2746882)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int s=0,n,m,x,y,i,nr,maxi=-609,benis,a,b,b1,b2,visitat[100001];
vector<int>v[100001];
vector<int>bn;
void filix(int x)
{
int st,dr;
st=dr=0;
bn.push_back(x);
visitat[x]=1;
while(st<=dr)
{
int z=bn[st];
for(i=0; i<v[z].size(); i++)
if(visitat[v[z][i]]==0)
{
visitat[v[z][i]]=visitat[z]+1;
bn.push_back(v[z][i]);
dr++;
}
st++;
}
}
int main()
{
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>n>>m>>x;
for(i=1; i<=m; i++)
{
in>>a>>b;
//v[b].push_back(a);
v[a].push_back(b);
}
filix(x);
for(i=1; i<=n; i++)
{
//if(i!=x)
if(visitat[i]==0)
out<<-1<<' ';
else
out<<visitat[i]-1<<' ';
}
return 0;
}
//adiacenta