Cod sursa(job #2262035)

Utilizator FlaviusFeteanFetean Flavius FlaviusFetean Data 16 octombrie 2018 21:47:53
Problema BFS - Parcurgere in latime Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <list>

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

int dmin[100005];
list<int> q, l[100005];


int main()
{
    int n, m, s, i, x, y;

    fin >> n >> m >> s;
    for(i = 1; i <= m; i++){
        fin >> x >> y; l[x].push_back(y);
    }

    q.push_back(s);

    while(!q.empty()){
        x = q.front(); q.pop_front();
        while(!l[x].empty()){
            y = l[x].front();l[x].pop_front();
            if(!dmin[y] && x != y && y != s)
                dmin[y] = dmin[x] + 1;
            q.push_back(y);
        }
    }

    for(i = 1; i <= n; i++){
        if(i != s && dmin[i] == 0){
            fout << -1 << " "; continue;}
        fout << dmin[i] << " ";
    }

    return 0;
}