Pagini recente » Cod sursa (job #1898008) | Cod sursa (job #2556914) | Cod sursa (job #1308899) | Cod sursa (job #363488) | Cod sursa (job #2044132)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> G[100003];
int visit[100003],coada[100003];
void citire(int &n,int &nod)
{
int m;
fin>>n>>m>>nod;
for(int i=1;i<=m;i++)
{
int x,y;
fin>>x>>y;
G[x].push_back(y);
}
}
int BFS(int nod)
{
int l=1,r=1;
coada[1]=nod;
visit[nod]=1;
while(l<=r)
{
for(int i=0;i<G[coada[l]].size();i++)
if(visit[G[coada[l]][i]]==0)
{
visit[G[coada[l]][i]]=visit[coada[l]]+1;
r++;
coada[r]=G[coada[l]][i];
}
l++;
}
}
int main()
{
int n,nod;
citire(n,nod);
BFS(nod);
for(int i=1;i<=n;i++)
fout<<visit[i]-1<<" ";
}