Cod sursa(job #1650969)

Utilizator ioan.veveraIoan Vevera ioan.vevera Data 11 martie 2016 22:13:34
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>

using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
long n,m,R,x,y,dist[44000];
bool a[44000][44000];
void BFS (int R)
{
    for(int i=1;i<=n;i++)
        if(a[R][i])
    {
        if(dist[i]>dist[R]+1 || !dist[i]) dist[i]=dist[R]+1;
    }
}
int main()
{
    fin>>n>>m>>R;
    for(long i=1;i<=m;i++) {fin>>x>>y;a[x][y]=true;}
    BFS(R);
    for(int i=1;i<=n;i++) if(dist[i]==0) dist[i]=-1;
    dist[R]=0;
    for(int i=1;i<=n;i++) fout<<dist[i]<<' ';

    return 0;
}