Pagini recente » Cod sursa (job #2563772) | Cod sursa (job #712168) | Cod sursa (job #865095) | Cod sursa (job #324430) | Cod sursa (job #2492471)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int mtA[1001][1001], dist[1001], val[1001];
int main()
{
int N, M,S;
f >> N >> M >> S;
int v[101][3];
while (M--) {
int x, y;
f >> x >> y;
if(x != y)
mtA[x][y] = 1;
}
int t = 1;
for (int i = 1; i <= N; i++)
dist[i] = -1;
dist[S] = 0;
val[1] = S;
for(int x = 1; x <= t; x++) {
for(int j = 1; j <= N; j++) {
if(mtA[val[x]][j] == 1 && dist[j] == -1) {
dist[j] = dist[val[x]] + 1;
val[++t] =j;
}
}
}
for(int i = 1; i <= N; i++)
g << dist[i] << " ";
return 0;
}