Pagini recente » Clasament razvanlazar2004 | Cod sursa (job #1804761) | Cod sursa (job #2559033) | Cod sursa (job #2861665) | Cod sursa (job #2194726)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
bool a[1002][1002];
int d[1002], n, m, S;
void BFS(int x)
{
int i;
for(i = 1; i <= n; i++)
{
if(a[x][i] == true)
if(d[i] == -1 || d[i] > d[x] + 1)
{
d[i] = d[x] + 1;
BFS(i);
}
}
}
int main()
{
int i, x, y;
fin >> n >> m >> S;
for(i = 1; i <= m; i++)
{
fin >> x >> y;
a[x][y] = true;
}
fin.close();
for(i = 1; i <= n; i++)
d[i] = -1;
d[S] = 0;
BFS(S);
for(i = 1; i <= n; i++)
fout << d[i] << " ";
return 0;
}