Pagini recente » Cod sursa (job #1139066) | Cod sursa (job #54571) | Cod sursa (job #1075528) | Cod sursa (job #2129476) | Cod sursa (job #1541919)
// infoarenaDFSnonRec.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include <fstream>
#include <vector>
#include <queue>
#define MaxN 100005
#define INF 123456789
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int N, M, S;
vector<int> G[MaxN];
int main() {
fin >> N >> M >> S;
for (int i = 0; i < M; ++i) {
int x, y;
fin >> x >> y;
G[x].push_back(y);
}
vector<int> dist(N + 1, INF);
queue<int> visitedQueue;
dist[S] = 0;
visitedQueue.push(S);
while (!visitedQueue.empty()) {
int node = visitedQueue.front();
visitedQueue.pop();
for (int i = 0; i < G[node].size(); ++i) {
int next = G[node][i];
if (dist[node] + 1 < dist[next]) {
dist[next] = dist[node] + 1;
visitedQueue.push(next);
}
}
}
for (int i = 1; i <= N; ++i) {
fout << ((dist[i] == INF) ? -1 : dist[i]) << ' ';
}
return 0;
}