Cod sursa(job #2259806)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 13 octombrie 2018 19:58:04
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> ls[100002];
int i,j,m,n,s,d[100002],dr[1000001];

int main()
{
    fin>>n>>m>>s;
    for (i=1;i<=n;i++)
        d[i]=-1;
    for (i=1;i<=m;i++)
    {
        int a,b;
        fin>>a>>b;
        ls[a].push_back(b);
    }
    int l=1,r=1;
    dr[1]=s;
    d[s]=0;
    j=1;
    while (l<=r)
    {
        for (i=0;i<ls[dr[l]].size();i++)
        if (d[ls[dr[l]][i]]==-1)
        {
            r++;
            dr[r]=ls[dr[l]][i];
            d[dr[r]]=d[dr[l]]+1;
        }
        l++;
        j++;
    }
    for (i=1;i<=n;i++) fout<<d[i]<<" ";
    return 0;
}