Cod sursa(job #1750985)

Utilizator otnielMercea Otniel otniel Data 31 august 2016 15:37:11
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
vector <int>a[100004];
int distante [100004];
int coada[1000004];
int bfs(int nod)
{
    int inceput,sfarsit;
    inceput=sfarsit=1;
    coada[inceput]=nod;
    distante[nod]=0;

    while(inceput<=sfarsit)
    {
        for(int i=0;i<a[coada[inceput]].size();i++)
        {
            if(distante[a[coada[inceput]][i]]==-1)
            {
                sfarsit++;
                coada[sfarsit]=a[coada[inceput]][i];
                distante[a[coada[inceput]][i]]=distante[coada[inceput]]+1;
            }


        }


        inceput++;
    }



}

int main()
{
    ifstream f("bfs.in");
    ofstream g("bfs.out");
    int n,m,s;
    f>>n>>m>>s;
    for(int i=1;i<=n;i++)
        distante[i]=-1;
   for(int i=0;i<m;i++)
   {
        int nod1,nod2;
        f>>nod1>>nod2;
        a[nod1].push_back(nod2);
   }

    bfs(s);

    for(int i=1;i<=n;i++)
        g<<distante[i]<<" ";

}