Cod sursa(job #1982518)

Utilizator filip.mihalutMihalut Filip filip.mihalut Data 19 mai 2017 09:42:47
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

ifstream f ("bfs.in");
ofstream g ("bfs.out");

vector < int > v[100002];
int seen[100002];

int main()
{
    int nod, arce , sursa , i , x , y , l , new_nod;
    f >> nod >> arce >> sursa;

    for(i = 1; i <= arce; i++)
        f >> x >> y , v[x].push_back(y);

    queue < int > Q;

    Q.push(sursa);
    seen[sursa] = 1;

    while(not Q.empty())
    {

        sursa = Q.front();
        l = v[sursa].size();
        Q.pop();
        //cout << seen[sursa] << " " << sursa << endl;
        for(i = 0; i < l; i++)
        {
            new_nod = v[sursa][i];
            if(not seen[new_nod])
                seen[new_nod] = seen[sursa] + 1,Q.push(new_nod);
        }
    }

    for(i = 1; i <= nod; i++)
        g << seen[i] - 1 << " ";
    return 0;
}