Pagini recente » Cod sursa (job #2719302) | Cod sursa (job #1343390) | Cod sursa (job #815548) | Cod sursa (job #1587033) | Cod sursa (job #2425689)
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
int n,m,start;
int a[101][101];
int p[101][101];
const int inf = 10000000;
int viz[100001];
vector<int>d;
vector<int>L[100001];
vector<int>v;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void citire()
{
fin>>n>>m>>start;
int i,j;
d.resize(n+1,-1);
for(i=1;i<=m;i++)
{
int x,y;
fin>>x>>y;
L[x].push_back(y);
}
}
void bf(int start)
{
int i;
queue<pair<int,int> >Q;
Q.push({0,start});
d[start]=0;
viz[start]=1;
while(!Q.empty())
{
int x=Q.front().second;
int c=Q.front().first;
Q.pop();
for(auto p:L[x])
if(!viz[p])
{
d[p]=d[x]+1;
Q.push({d[p],p});
viz[p]=1;
}
}
}
int main()
{
int nr_c=0;
citire();
bf(start);
for(int i=1;i<=n;i++)
fout<<d[i]<<" ";
return 0;
}