Pagini recente » Cod sursa (job #1940375) | Cod sursa (job #1402271) | Cod sursa (job #2615898) | Cod sursa (job #2985790) | Cod sursa (job #1696807)
# include <bits/stdc++.h>
using namespace std;
#define dimax 100010
#define valmax 1000000
int distanta[dimax];
vector <int> a[dimax];
queue <int>coada;
int n,m,i,x,y,start;
int main ()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>start;
while(i<=m)
{
f>>x>>y;
a[x].push_back(y);
++i;
}
for(i=1;i<=n;i++)
distanta[i]=dimax;
distanta[start]=0;
coada.push(start);
while(coada.empty()==0)
{
int nod=coada.front();
coada.pop();
for(auto vecin:a[nod])
{
if(distanta[vecin]>distanta[nod]+1)
{
distanta[vecin]=distanta[nod]+1;
coada.push(vecin);
}
}
}
for(i=1;i<=n;++i)
{
if(distanta[i]==dimax)
g<<-1<<" ";
else g<<distanta[i]<<" ";
}
return 0;
}