Cod sursa(job #1833783)

Utilizator sahleancosminSahlean Cosmin sahleancosmin Data 23 decembrie 2016 09:41:45
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,c,lista[1000001],urm[1000001],inc[100001],sf;
int stiva[100001],adc[100001];
bool vf[100001];
int main()
{
   f>>n>>m>>c;
   int x,y;
   for(int i=1;i<=m;i++)
   {
       f>>x>>y;
       lista[++sf]=y;
       urm[sf]=inc[x];
       inc[x]=sf;
   }
   int inc2=1,sf=1;
    stiva[1]=c;
    adc[c]=1;
    vf[c]=true;
    while(inc2<=sf)
    {
        for(int i=inc[stiva[inc2]];i;i=urm[i])
            if(!vf[lista[i]])
            {
                vf[lista[i]]=true;
                stiva[++sf]=lista[i];
                adc[stiva[sf]]=adc[stiva[inc2]]+1;
            }

        inc2++;
    }
    for(int i=1;i<=n;i++)
        g<<adc[i]-1<<" ";
    return 0;
}