Pagini recente » Cod sursa (job #1076561) | Cod sursa (job #1375809) | Cod sursa (job #1692896) | Cod sursa (job #1822525) | Cod sursa (job #2943787)
#include<bits/stdc++.h>
using namespace std;
ifstream F("bfs.in");
ofstream G("bfs.out");
vector<int> a[100001];
int i,j,n,m,s,k,d[100001];
queue<int> q;
int main()
{
for(F>>n>>m>>s;m--;F>>i>>j,a[i].push_back(j));
for(i=1;i<=n;d[i++]=100000);
for(d[s]=0,q.push(s);!q.empty();)
for(i=q.front(),q.pop(),k=a[i].size(),j=0;j<k;++j)
if(d[a[i][j]]>d[i]+1)
d[a[i][j]]=d[i]+1,q.push(a[i][j]);
for(i=1;i<=n;G<<(d[i]==100000?-1:d[i])<<' ',++i);
return 0;
}