Pagini recente » Cod sursa (job #1712445) | Cod sursa (job #1985293) | Istoria paginii runda/pcon3 | Cod sursa (job #1293067) | Cod sursa (job #1750985)
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
vector <int>a[100004];
int distante [100004];
int coada[1000004];
int bfs(int nod)
{
int inceput,sfarsit;
inceput=sfarsit=1;
coada[inceput]=nod;
distante[nod]=0;
while(inceput<=sfarsit)
{
for(int i=0;i<a[coada[inceput]].size();i++)
{
if(distante[a[coada[inceput]][i]]==-1)
{
sfarsit++;
coada[sfarsit]=a[coada[inceput]][i];
distante[a[coada[inceput]][i]]=distante[coada[inceput]]+1;
}
}
inceput++;
}
}
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s;
f>>n>>m>>s;
for(int i=1;i<=n;i++)
distante[i]=-1;
for(int i=0;i<m;i++)
{
int nod1,nod2;
f>>nod1>>nod2;
a[nod1].push_back(nod2);
}
bfs(s);
for(int i=1;i<=n;i++)
g<<distante[i]<<" ";
}