Cod sursa(job #1832385)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 19 decembrie 2016 21:31:19
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> L[100005];
int v[100005],sol[100005];
int n,m,s,a,b,x,i,p,u,k;
int main(){
    fin>>n>>m>>s;
    for(i=1;i<=m;i++){
        fin>>a>>b;
        L[a].push_back(b);
    }
    p=1;
    u=1;
    v[1]=s;
    sol[s]=1;
    while(p<=u){
        x=v[p];
        for(i=0;i<L[x].size();i++){
            k=L[x][i];
            if(sol[k]==0){
                u++;
                v[u]=k;
                sol[k]=1+sol[x];
            }
        }
        p++;
    }
    for(i=1;i<=n;i++){
        fout<<sol[i]-1<<" ";
    }
    return 0;
}