Pagini recente » Cod sursa (job #219581) | Cod sursa (job #2919792) | Cod sursa (job #2747470) | Cod sursa (job #866242) | Cod sursa (job #1199402)
#include<iostream>
#include<fstream>
#include<stdio>
#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]]==-1)
{
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);
memset(nr_arc,-1,sizeof(nr_arc));
nr_arc[s]=0;
coada[1]=s;
parcurg(s);
for(i=1;i<=n;i++)g<<nr_arc[i]<<' ';
g.close();
return 0;
}