Cod sursa(job #2194726)
| Utilizator | Data | 14 aprilie 2018 11:26:00 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.7 kb |
#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;
}
