Cod sursa(job #2200559)

Utilizator magda23245Chiperescu Magda magda23245 Data 1 mai 2018 19:23:06
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream fin ("bfs.in");
ofstream fout ("bfs.out");

int n, m,d[200005], S;
bool a[1005][1005];

void Citire()
{
    int i,x,y;
    fin>>n>>m>>S;
    for( i= 1 ; i <= m ; i++)
    {
        fin>>x>>y;
        a[x][y]=1;
    }
}

void Init()
{
    for( int i = 1 ; i <= n ;i++)
        d[i]=-1;
    d[S]=0;
}
void DFS( int k)
{
    for(int i = 1 ; i <= n ; i++)
        if(a[k][i]==1)
        {
            if(d[i]==-1 || d[i]>d[k]+1)
            {
                d[i]=d[k]+1;
                DFS(i);
            }

        }
}

int main()
{
    Citire();
    Init();
    int i;
    DFS(S);
    for( i = 1 ;i <= n ; i++)
        fout<<d[i]<<" ";
    fout<<"\n";
    return 0;
}