Pagini recente » Cod sursa (job #1274470) | Cod sursa (job #2118125) | Cod sursa (job #1116951) | Cod sursa (job #3338193) | Cod sursa (job #3338927)
//
// main.cpp
// BFS
//
// Created by Andrada Minca on 05.02.2026.
//
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
struct kk{
int val;
int dist;
};
int n,m,s;
vector<vector<bool>> a(100000,vector<bool>(100000));
vector<int> v(100000,-1);
vector<bool>pr(100000);
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);
a.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;
}