Pagini recente » Cod sursa (job #1310774) | Monitorul de evaluare | Cod sursa (job #214506) | Cod sursa (job #3331916) | Cod sursa (job #3305460)
#include <fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
vector<int> se[100001];
int arr[100001];
void bfs(int sursa)
{
arr[sursa]=1;
queue<int> q;
q.push(sursa);
while(!q.empty())
{
int rn=q.front();
q.pop();
for(auto sec: se[rn])
{
if(arr[sec]==0){
arr[sec]=arr[rn]+1;
q.push(sec);
}
}
}
}
int main()
{
int n,m,nr;
in>>n>>m>>nr;
int q1,q2;
for(int i=1; i<=m; i++)
{
in>>q1>>q2;
se[q1].push_back(q2);
}
bfs(nr);
for(int i=1; i<=n; i++)
{
out<<arr[i]-1<<" ";
}
return 0;
}