Cod sursa(job #1865117)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 1 februarie 2017 13:55:08
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n, m, s, i, v[100003], c[100003], a, b, ok;

vector<int> L[100003];

void bfs(int nod){
    int p=1;
    int u=1;
    c[1]=nod;
    v[nod]=1;
    while(p<=u){
        int nodc=c[p];
        for(int i=0;i<L[nodc].size();i++){
            int nodi=L[nodc][i];
            if(v[nodi]==0){
                v[nodi]=v[nodc]+1;
                u++;
                c[u]=nodi;
            }
        }
        p++;
    }
}

int main()
{
    fin>>n>>m>>s;
    for(i=1;i<=m;i++){
        fin>>a>>b;
        L[a].push_back(b);
    }

    bfs(s);
    for(i=1;i<=n;i++)
        fout<<v[i]-1<<" ";

    return 0;
}