Pagini recente » Monitorul de evaluare | Cod sursa (job #1076422) | Monitorul de evaluare | Cod sursa (job #3333193) | Cod sursa (job #3338921)
//
// main.cpp
// BFS
//
// Created by Andrada Minca on 05.02.2026.
//
#include <fstream>
#include <stack>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
struct kk{
int val;
int dist;
};
int n,m,s;
int a[100005][100005];
vector<int> pr(100005),v(100005,-1);
void bfs(int s)
{
stack<kk>st;
st.push({s,0});
pr[s]=1;
while(!st.empty())
{
kk nod=st.top();
//cout<<nod.val<<endl;
v[nod.val]=nod.dist;
st.pop();
for(int i=0;i<n;i++)
{
if(a[nod.val][i]==1&&pr[i]==0)
{
st.push({i,nod.dist+1});
pr[i]=1;
}
}
}
}
int main()
{
cin>>n>>m>>s;
pr.resize(n);
v.resize(n);
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
x--;
y--;
a[x][y]=1;
}
bfs(s-1);
for(int i=0;i<n;i++)cout<<v[i]<<" ";
return 0;
}