Pagini recente » Cod sursa (job #1966647) | Cod sursa (job #997405) | Cod sursa (job #2027292) | Cod sursa (job #779778) | Cod sursa (job #1865113)
#include <fstream>
#include <vector>
#include <deque>
#define NDIM 100002
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> L[NDIM];
deque <int> c;
int v[100002],i,j,n,m,s,x,y,T[100002];
void bfs(int x)
{
c.push_back(x);
v[x]=1;
while(!c.empty())
{
int nodi=c.front();
for(i=0;i<L[nodi].size();i++)
{
int nodc=L[nodi][i];
if(v[nodc]==0)
{
v[nodc]=1;
c.push_back(nodc);
T[nodc]=T[nodi]+1;
}
}
c.pop_front();
}
}
int main()
{
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
L[x].push_back(y);
}
bfs(s);
for(i=1;i<=n;i++)
{
if(T[i]==0&&i!=s)
g<<-1<<" ";
else
g<<T[i]<<" ";
}
return 0;
}