Pagini recente » Cod sursa (job #2387374) | Cod sursa (job #3318392) | Cod sursa (job #2386181) | Cod sursa (job #3030224) | Cod sursa (job #3318703)
// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector<int> L[100001];
vector<int> viz(100001, 0);
vector<int> cost(100001, -1);
queue<int> qu;
void BFS(int curr_node){
while(!qu.empty()){
for(int i : L[curr_node]){
if(viz[i] == 0){
qu.push(i);
viz[i]=1;
cost[i] = cost[curr_node]+1;
}
}
qu.pop();
curr_node = qu.front();
BFS(curr_node);
}
}
int main(){
int nr_muchii, nr_noduri, nod_x, nod_y, given_node;
fin >> nr_noduri;
fin >> nr_muchii;
fin >> given_node;
for (int i = 1; i<=nr_muchii; i++) {
fin >> nod_x >> nod_y;
L[nod_x].push_back(nod_y);
}
cost[given_node] = 0;
viz[given_node] = 1;
qu.push(given_node);
BFS(given_node);
for(int i =1; i<=nr_noduri;i++){
fout << cost[i] << " ";
}
}