Cod sursa(job #1417320)

Utilizator alinmocanu95FMI Alin Mocanu alinmocanu95 Data 10 aprilie 2015 02:05:59
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<iostream>
#include<fstream>
#include<vector>
#define nmax 1000001
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

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

void bfs(int nod)
{
    int l=1;
    cost[nod]=0;
    coada[l]=nod;
    int i,j;

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

int main()
{
    int i,j,n,m,x,y,s;
    f>>n>>m>>s; //de la s la i
    while(m>0)
    {
        f>>x>>y;
        v[x].push_back(y);
        m--;
    }
    for(i=1;i<=n;i++) {gg[i]=v[i].size();cost[i]=-1;}

    bfs(s);

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

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