Pagini recente » Cod sursa (job #2188782) | Cod sursa (job #214233) | Cod sursa (job #1158477) | Cod sursa (job #902596) | Cod sursa (job #1090894)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream d("bfs.in");
ofstream o("bfs.out");
int a[100001],b[100001],n,m,x;
vector<int> graf[100001];
bool c[100001];
void bfs()
{
int st=1,dr=1,i;
while(st<=dr)
{
int x=a[st++];
for(i=0 ; i<graf[x].size() ; i++){
if(b[graf[x][i]]==-1)
{
a[++dr]=graf[x][i];
b[graf[x][i]]=b[x]+1;
}
}
}
}
int main()
{
int q;
d>>n>>m>>x;
while(d>>m>>q)
graf[m].push_back(q);
memset(b,-1,sizeof(b));
b[x]=0;
a[1]=x;
bfs();
for(int i=1;i<=n;i++)
o<<b[i]<<' ';
return 0;
}