Cod sursa(job #1700179)

Utilizator serban_andreiserban andrei-catalin serban_andrei Data 9 mai 2016 18:55:24
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
# include <bits/stdc++.h>

using namespace std;

#define dimax 100010

vector <int> v[dimax];

queue <int>c;

int n,m,i,x,y,st,dist[dimax];

int main ()
{

    ifstream f("bfs.in");
    ofstream g("bfs.out");
    f>>n>>m>>st;
    while(m--)
    {
        f>>x>>y;
        v[x].push_back(y);
    }

    for(i=1;i<=n;i++)
        dist[i]=dimax;
    dist[st]=0;
    c.push(st);
    while(c.empty()==0){
        int nod=c.front();
        c.pop();
        for(auto vecin:v[nod]){
            if(dist[vecin]>dist[nod]+1)
            {
                dist[vecin]=dist[nod]+1;
                c.push(vecin);
            }

        }
    }

    for(i=1;i<=n;++i){
        if(dist[i]==dimax)
            g<<-1<<" ";
        else g<<dist[i]<<" ";
    }
    return 0;
}