Pagini recente » Cod sursa (job #5085) | Cod sursa (job #3294571) | Cod sursa (job #2083172) | Cod sursa (job #735812) | Cod sursa (job #3298144)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<vector<int>>netanyahu;
queue<int>lapid;
int v[123123];
int main()
{
int n,m,s;
for(int i = 1;i<=n;i++){
v[i]=-1;
}
fin>>n>>m>>s;
for(int i = 1;i<=n;i++){
netanyahu.push_back({i});
}
int a,b;
for(int i = 0;i<m;i++){
fin>>a>>b;
netanyahu[a-1].push_back(b);
}
for(int i = 0;i<netanyahu.size();i++){
for(int j = 0;j<netanyahu[i].size();j++){
// cout<<netanyahu[i][j]<<" ";
}
//cout<<'\n';
}
lapid.push(s);
v[s]=0;
int q= 1;
while(!lapid.empty()){
int bezalel=lapid.front();
for(int i = 1;i<netanyahu[bezalel-1].size();i++){
if(v[netanyahu[bezalel-1][i]]==-1){
v[netanyahu[bezalel-1][i]]=v[netanyahu[bezalel-1][0]]+1;
lapid.push(netanyahu[bezalel-1][i]);
}
}
lapid.pop();
}
for(int i = 1;i<=n;i++){
fout<<v[i]<<" ";
}
return 0;
}