Pagini recente » Cod sursa (job #648563) | Cod sursa (job #2410555) | Cod sursa (job #2756707) | Cod sursa (job #70380) | Cod sursa (job #1051959)
# include <iostream>
# include <fstream>
# include <vector>
# include <queue>
# include <string.h>
# define nmax 100000
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> v[nmax];
queue <int> coada;
int n,m,s,valid[nmax];
int main()
{
f>>n>>m>>s;
int i,x,y;
for(i=1; i<=m; i++)
{
f>>x>>y;
v[x].push_back(y);
}
coada.push(s);
int cate=0;
valid[s]=0;
while(!coada.empty())
{
cate+=1;
for(i=0; i<v[coada.front()].size(); i++)
{
if(valid[v[coada.front()][i]]==0 && v[coada.front()][i]!=s)
{
coada.push(v[coada.front()][i]);
valid[v[coada.front()][i]]=valid[coada.front()]+1;
}
}
coada.pop();
}
for(i=1; i<=n; i++)
if(valid[i]!=0 || i==s)
g<<valid[i]<<" ";
else
g<<"-1 ";
return 0;
}