Cod sursa(job #1999017)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 9 iulie 2017 23:30:57
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

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

int n,m,x;

int viz[100001];

vector <int> V[100001];

void BFS()
{
    queue <int> C;
    C.push(x);
    while(!C.empty())
    {
        int w=C.front();
        C.pop();

        for(int i=0;i<V[w].size();++i)
            if(viz[V[w][i]]==-1)
        {
            viz[V[w][i]]=viz[w]+1;
            C.push(V[w][i]);
        }
    }
}

int main()
{
f>>n>>m>>x;
for(int i=1;i<=m;++i)
{
    int x,y;
    f>>x>>y;
    V[x].push_back(y);
}

for(int i=1;i<=n;++i)
    viz[i]=-1;
viz[x]=0;

BFS();

for(int i=1;i<=n;++i)
    g<<viz[i]<<" ";
return 0;


}