Pagini recente » Cod sursa (job #386793) | Cod sursa (job #256001) | Cod sursa (job #2692221) | Cod sursa (job #1162832) | Cod sursa (job #2195555)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
int start,n,m,a[100005],c,x,y;
vector <int> g[100005];
queue <int> q;
void citire()
{
ifstream fin("bfs.in");
fin>>n>>m>>start;
a[start-1]=1;
for(int i=0;i<m;i++)
{
fin>>x>>y;
if(x!=y)
g[x-1].push_back(y-1);
}
}
void bfs()
{
q.push(start-1);
while(!q.empty())
{
c=q.front();
q.pop();
for(auto&v:g[c])
{
if(a[v]==0)
{
q.push(v);
a[v]=a[c]+1;
}
}
}
ofstream fout("bfs.out");
for(int i=0;i<n;i++)
fout<<a[i]-1<<" ";
}
int main()
{
citire();
bfs();
return 0;
}