Cod sursa(job #2172849)

Utilizator libaliv26Petre Livia libaliv26 Data 15 martie 2018 18:22:31
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int const lim=100005;
int n, m, distanta[lim];

vector <int> muchii[lim];
queue <int> coada;

void bfs()
{int vecin, nod;
while (!coada.empty())
{nod=coada.front();
coada.pop();
for(int i=0;i<muchii[nod].size();i++)
    {vecin=muchii[nod][i];
    if(distanta[vecin]==-1)
    {coada.push(vecin);
    distanta[vecin]=distanta[nod]+1;}
    }
}
}

void citire()
{int nodstart;
f>>n>>m>>nodstart;
for(int i=1;i<=m;i++)
    {int x,y;
    f>>x>>y;
    muchii[x].push_back(y);}
for(int i=1;i<=n;i++)
    distanta[i]=-1;
    distanta[nodstart]=0;
    coada.push(nodstart);
    bfs();
    for(int i=1;i<=n;i++)
        g<<distanta[i]<<" ";
}



int main()
{
    citire();
    return 0;
}