Pagini recente » Istoria paginii runda/contest_3 | Statistici B Radu (BuRN) | Cod sursa (job #302308) | Statistici Racz Antonia (AntoGamer18) | Cod sursa (job #2470087)
#include <bits/stdc++.h>
#define NMAX 100001
using namespace std;
typedef long long ll;
string file="bfs";
ifstream fin(file+".in");
ofstream fout(file+".out");
vector<int>a[NMAX];
int distanta[NMAX],vizitat[NMAX],c[NMAX];
int n,m,s;
void bfs(int x){
int p,u;
p=u=1;
c[1]=x;
vizitat[x]=1; distanta[x]=0;
while(p<=u){
x=c[p++];
for(auto i:a[x]){
if(!vizitat[i]){
distanta[i]=distanta[x]+1;
vizitat[i]=1;
c[++u]=i;
}
}
}
}
int main()
{
int i,x,y;
fin>>n>>m>>s;
for(i=1;i<=m;i++){
fin>>x>>y;
a[x].push_back(y);
}
bfs(s);
for(i=1;i<=n;i++){
if(vizitat[i]) fout<<distanta[i]<<" ";
else fout<<"-1 ";
}
return 0;
}