Pagini recente » Cod sursa (job #2628944) | Cod sursa (job #2094185) | Cod sursa (job #1824805) | Cod sursa (job #3183325) | Cod sursa (job #2415708)
#include <vector>
//#include <iostream>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
#include <fstream>
using namespace std;
ifstream cin ("bfs.in");
ofstream cout ("bfs.out");
vector <int> v[100100];
queue <int> q;
bool used[100100];
int lvl[100100];
int main(){
int noduri,muchii,sursa;
cin>>noduri>>muchii>>sursa;
for(int i=1;i<=muchii;i++)
{
int x,y;
cin>>x>>y;
v[x].push_back(y);
}
while(!q.empty()){
int nod=q.front();
q.pop();
for(int i=0;i<v[nod].size();i++){
if(!used[v[nod][i]]){q.push(v[nod][i]);
used[v[nod][i]]=true;
lvl[v[nod][i]]=lvl[nod]+1;}
}
}
for(int i=1;i<=noduri;i++){
if(!used[i]){
lvl[i]=-1;
}
cout<<lvl[i]<<" ";
}
return 0;
}