Cod sursa(job #2202124)

Utilizator richard26Francu Richard richard26 Data 7 mai 2018 17:17:13
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include<fstream>

using namespace std;

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

int a[20001][20001],coada[100001],v[100001],viz[100001] ;

int main()
{
    int n,x,y,i,m,nodp,nodc,prim,ultim,k ;
    f>>n>>m>>k ;
    for(i=1;i<=m;i++)
    {
        f>>x>>y ;
        if(x!=y)a[x][y]=1 ;
    }

    prim=1 ;
    coada[prim]=k ;
    ultim=1 ;
    viz[k]=1 ;
    while(prim<=ultim)
    {
        nodc=coada[prim] ;

        for(i=1;i<=n;i++) if(viz[i]==0&&a[nodc][i]==1)
        {
            ultim++ ;
            coada[ultim]=i ;
            viz[i]=1 ;
            v[i]=v[coada[prim]]+1 ;
        }
        prim++ ;

    }


    for(i=1;i<=n;i++)
         if(viz[i]==1) g<<v[i]<<" " ;
           else g<<-1<<" " ;

    return 0 ;
}