Cod sursa(job #2037303)

Utilizator Johnny07Savu Ioan-Daniel Johnny07 Data 11 octombrie 2017 23:15:14
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
vector <int> vec[100010];
ifstream f("bfs.in");
ofstream gg("bfs.out");
int i,j,n,m,s,g[100010],coada[100010],cost[100010];

void BFS(int nod)
{
for (i=1;i<=n;i++) cost[i]=-1;
int lim=1;
coada[lim]=nod;
cost[nod]=0;
for (i=1;i<=lim;i++)
{
    for (j=0;j<g[coada[i]];j++)
    {
        if (cost[vec[coada[i]][j]]==-1) {lim++; coada[lim]=vec[coada[i]][j];cost[coada[lim]]=cost[coada[i]]+1;}
    }
}

}

int main()
{
f>>n>>m>>s;
int x,y;
for (i=1;i<=m;i++)
{

    f>>x>>y;
    vec[x].push_back(y);
}
for (i=1;i<=n;i++) g[i]=vec[i].size();


BFS(s);

for (i=1;i<=n;i++) gg<<cost[i]<<" ";

    return 0;
}