Cod sursa(job #2460453)

Utilizator Anca.ioanaMuscalagiu Anca Ioana Anca.ioana Data 23 septembrie 2019 19:06:22
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> L[100001];
queue <int> c;
int n,m,Viz[100001],Niv[100001],S;
void Citire()
{int i,x,y;
    f>>n>>m>>S;
    for(i=1;i<=m;i++)
    {f>>x>>y;
        L[x].push_back(y);

    }
}
void BFS()
{ int nod,vf=S,j;
c.push(vf);
Viz[vf]=1;
while(!(c.empty()))
  {nod=c.front();
    for(j=0;j<L[nod].size();j++)
        if(Viz[L[nod][j]]==0)
        {int vec=L[nod][j];
        c.push(vec);
        Viz[L[nod][j]]=1;
        Niv[L[nod][j]]=Niv[nod]+1;
         }
        c.pop();
   }
}
 void Afisare()
{ int i;
    for(i=1;i<=n;i++)
        if(Niv[i]==0&&i!=S)
        g<<-1<<" ";
        else
        g<<Niv[i]<<" ";
}

 int main()
{
  Citire();

  BFS();
  Afisare();
f.close();
g.close();
    return 0;
}