Pagini recente » Cod sursa (job #3314464) | Cod sursa (job #3336220) | Cod sursa (job #2920510) | Cod sursa (job #1324673) | Cod sursa (job #3306477)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
#include <climits>
#include <queue>
#include <vector>
#include <bitset>
#define pb push_back
using namespace std;
string filename = "bfs";
ifstream in(filename + ".in");
ofstream out(filename + ".out");
const int NMAX = 1e5+1;
vector<int> d, ad[NMAX];
void bfs(int node)
{
queue<int> q;
d[node]=0;
q.push(node);
while(!q.empty())
{
int p = q.front(); q.pop();
for(auto i : ad[p])
if(d[i] == -1)
{
d[i]=d[p]+1;
q.push(i);
}
}
}
int n, m , start;
int main()
{
in>>n>>m>>start;
d.resize(n+1, -1);
int a, b;
for(int i = 1;i<=m;i++)
{
in>>a>>b;
ad[a].pb(b);
}
bfs(start);
for(int i = 1; i<=n;i++)
out<<d[i]<<' ';
return 0;
}