Pagini recente » Cod sursa (job #1549920) | Cod sursa (job #1421697) | Cod sursa (job #1757856) | Cod sursa (job #1814842) | Cod sursa (job #2501714)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
queue<int>Q;
vector <int>graph[100005];
int n,m,s;
int l[100005];
void citire(){
f>>n>>m>>s;
for(int i=0; i<m; i++){
int x,y;
f>>x>>y;
graph[x].push_back(y);
}
}
void rezolvare(){
Q.push(s);
l[s] = 1;
while(!Q.empty())
{
int el = Q.front();
Q.pop();
for(auto &v:graph[el])
if(l[v] == 0){
Q.push(v);
l[v] = l[el] + 1;
}
}
for(int i=1; i<=n; i++)
g<<l[i]-1<<" ";
}
int main() {
citire();
rezolvare();
return 0;
}