Pagini recente » Cod sursa (job #1360647) | Cod sursa (job #1258904) | Cod sursa (job #292573) | Cod sursa (job #2850781) | Cod sursa (job #1199433)
#include<iostream>
#include<fstream>
#include<vector>
#define maxn 100005
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> t[maxn];
int n,m,s,i,j,nr_arc[maxn],coada[maxn];
void parcurg(int s)
{
int sf_coada=1;
for(i=1;i<=sf_coada;i++)
for(j=0;j<t[coada[i]].size();j++)
if(nr_arc[t[coada[i]][j]]==0&&coada[i]!=s)
{
coada[++sf_coada]=t[coada[i]][j];
nr_arc[t[coada[i]][j]]=nr_arc[coada[i]]+1;
}
}
int main()
{
f>>n>>m>>s;
while(f>>i>>j)t[i].push_back(j);
nr_arc[s]=0;
coada[1]=s;
parcurg(s);
for(i=1;i<=n;i++)
if(i==s)g<<"0 ";
else
if(nr_arc[i]==0)g<<"-1 ";
else
g<<nr_arc[i]<<' ';
g.close();
return 0;
}