Pagini recente » Cod sursa (job #511381) | Borderou de evaluare (job #2510316) | Borderou de evaluare (job #3243721) | Borderou de evaluare (job #1119077) | Cod sursa (job #2662659)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<int>nod[100005];
queue<int>q;
int mn[100005];
int n,m,s;
int main()
{
int x,y;
f>>n>>m>>s;
for(int i=1;i<=n;i++)
mn[i]=-1;
for(int i=1;i<=n;i++)
{
f>>x>>y;
nod[x].push_back(y);
}
mn[s]=0;
q.push(s);
while(!q.empty())
{
int pos=q.front();
q.pop();
for(int i=0;i<nod[pos].size();i++)
{
if(mn[nod[pos][i]]!=1)
continue;
mn[nod[pos][i]]=mn[pos]+1;
q.push(nod[pos][i]);
}
}
for(int i=1;i<=n;i++)
g<<mn[i]<<" ";
return 0;
}