Cod sursa(job #1434681)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 11 mai 2015 09:22:12
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> A[10001];
int cost[100001],lungime[100001],i,j,v[100001],m,n,s,x,y;
void BFS(int nod){
   int  L=1;
           memset(cost,-1,sizeof(cost));
                v[L]=nod;
                cost[nod]=0;

    for (i=1;i<=L;i++)
        for (j = 0; j < lungime[v[i]]; j++)
            if (cost[A[v[i]][j]]==-1)
            {

                v[++L] = A[v[i]][j];
                cost[v[L]]=cost[v[i]]+1;
            }
}


int main()
{f>>n>>m>>s;
for(i=1;i<=m;i++){
        f>>x>>y;
        A[x].push_back(y);
}
    for(i=1;i<=n;i++)
            lungime[i]=A[i].size();
BFS(s);
for(i=1;i<=n;i++)
    g<<cost[i]<<" ";

    return 0;
}