Pagini recente » template/fmi-no-stress-4/footer | Istoria paginii template/detailed-feedback | Cod sursa (job #2253325) | Cod sursa (job #1801547) | Cod sursa (job #2423766)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NLIM 100001
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<int> Muchii[NLIM];
queue<int> Coada;
int dis[NLIM];
void citire(int &n, int &m, int &start) {
f >> n >> m >> start;
for(int i=1; i<=m; i++) {
int s, d;
f >> s >> d;
Muchii[s].push_back(d);
dis[s] = -1;
}
}
void BFS() {
while(!Coada.empty()) {
int nod = Coada.front();
Coada.pop();
for(int i=0; i<Muchii[nod].size(); i++) {
int vecin = Muchii[nod][i];
if(dis[vecin] == -1) {
Coada.push(vecin);
dis[vecin] = dis[nod]+1;
}
}
}
}
int main() {
int n, m, start;
citire(n, m, start);
dis[start] = 0;
Coada.push(start);
BFS();
for(int i=1; i<n; i++)
g << dis[i] << " ";
return 0;
}