Cod sursa(job #1691682)

Utilizator AlexandruRudiAlexandru Rudi AlexandruRudi Data 19 aprilie 2016 09:49:20
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

int n,m,s,c[100005],p[100005],l,x,y;
vector <int> a[100005];

int main()
{
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    in >> n >> m >> s;
    for(int i=1;i<=m;i++){
        in >> x >> y;
        a[x].push_back(y);
    }
    fill(c+1,c+n+1,-1);

    l=1;
    c[s]=0;
    p[l]=s;
    for(int i=1;i<=l;i++){
        for(int j=0;j<a[p[i]].size();j++){
            if(c[a[p[i]][j]]==-1){
                p[++l]=a[p[i]][j];
                c[p[l]]=c[p[i]]+1;
            }
        }
    }


    for(int i=1;i<=n;i++) out << c[i] << ' ';
}