Cod sursa(job #2388598)

Utilizator T_george_TGeorge Teodorescu T_george_T Data 26 martie 2019 11:12:33
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb

#include <bits/stdc++.h>

using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
#define NMAX 100001
vector <int> v[NMAX];
queue <int> q;
int poz[NMAX];
int n,m,X;
void bfs(){
    q.push(X);
    poz[X]=0;
    while(!q.empty()){
        int i=q.front();
        q.pop();
        for(int j=0;j<v[i].size();j++){
            if(poz[v[i][j]]==-1){
                q.push(v[i][j]);
                poz[v[i][j]]=poz[i]+1;
            }
        }
    }
}
int main()
{
    in>>n>>m>>X;
    for(int i=1;i<=m;i++){
            int x,y;
    in>>x>>y;
        v[x].push_back(y);
    }
   memset(poz,-1,sizeof(poz));
   bfs();
   for(int i=1;i<=n;i++)
    out<<poz[i]<<" ";
    return 0;
}