Cod sursa(job #1438723)

Utilizator SorinmocanuFMI Sorin Mocanu Sorinmocanu Data 20 mai 2015 18:11:18
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream>
#include<fstream>
#include<vector>
#define nmax 1000005
using namespace std;

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

int cost[nmax],coada[nmax];
vector <int> v[nmax];

void bfs(int nod)
{
    int k=1,i,j;

    cost[nod]=0;
    coada[k]=nod;

    for(i=1;i<=k;i++)
        for(j=0;j<v[coada[i]].size();j++)
            if(cost[v[coada[i]][j]]==-1)
            {
                k++;
                coada[k]=v[coada[i]][j];
                cost[coada[k]]=cost[coada[i]]+1;
            }
}

int main()
{
    int N,M,S,i,x,y;
    f>>N>>M>>S;
    for(i=1;i<=M;i++)
    {
        f>>x>>y;
        v[x].push_back(y);
    }
    for(i=1;i<=N;i++) cost[i]=-1;

    bfs(S);

    for(i=1;i<=N;i++) g<<cost[i]<<" ";

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