Pagini recente » Cod sursa (job #1327795) | Istoria paginii utilizator/chelarueduard | Istoria paginii runda/preoji.bdc.19 | Cod sursa (job #2759884) | Cod sursa (job #2494402)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
deque <int> dq;
int rasp[100001];
vector <int> v[100001];
ifstream in ("bfs.in");
ofstream out ("bfs.out");
void bfs (int x)
{
int nod;
dq.push_back(x);
rasp[x]=1;
{
while (!dq.empty())
{
nod=dq.front();
dq.pop_front();
for (int i=0; i<v[nod].size(); i++)
if (!rasp[v[nod][i]])
{
rasp[v[nod][i]]=rasp[nod]+1;
dq.push_back(v[nod][i]);
}
}
}
}
int main()
{
int n,m,s,a,b,i;
in>>n>>m>>s;
for (i=1; i<=m; i++)
{
in>>a>>b;
v[a].push_back(b);
}
bfs(s);
for (i=1; i<=n; i++)
{
if (i==s)
out<<0<<" ";
else
out<<rasp[i]-1<<" ";
}
return 0;
}