Cod sursa(job #1449005)

Utilizator florin2512Nicula Florin florin2512 Data 8 iunie 2015 16:29:52
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;

int N,M,L,Start;
vector  <int> A[1000];
int G[1000],S[1000],Cost[1000];

void BFS(int nod)
{
    int i,j;
    memset(Cost,-1,sizeof(Cost));
    L=1;
    Cost[nod]=0;
    S[L]=nod;

    for(i=1;i<=L;i++)
        for(j=0;j<G[S[i]];j++)
         if(Cost[A[S[i]][j]]==-1)
         {
             S[++L]=A[S[i]][j];
             Cost[S[L]]=Cost[S[i]]+1;
         }
}

ifstream f("bfs.in");
ofstream g("bfs.out");
int main()
{
    int i,x,y;
    f>>N>>M>>Start;

    for(i=1;i<=M;i++)
    {
        f>>x>>y;
        A[x].push_back(y);
    }

    for(i=1;i<=N;i++)
        G[i]=A[i].size();

    BFS(Start);

    for(i=1;i<=N;i++)
        g<<Cost[i];
    return 0;
}