Cod sursa(job #1199402)

Utilizator breahnadavidBreahna David breahnadavid Data 19 iunie 2014 13:39:31
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<iostream>
#include<fstream>
#include<stdio>
#include<vector>
#define maxn 100005
using namespace std;

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

vector <int> t[maxn];
int n,m,s,i,j,nr_arc[maxn],coada[maxn];

void parcurg(int s)
        {
        int sf_coada=1;
        for(i=1;i<=sf_coada;i++)
                for(j=0;j<t[coada[i]].size();j++)
                        if(nr_arc[t[coada[i]][j]]==-1)
                                {
                                coada[++sf_coada]=t[coada[i]][j];
                                nr_arc[t[coada[i]][j]]=nr_arc[coada[i]]+1;
                                }
        }

int main()
{
f>>n>>m>>s;

while(f>>i>>j)t[i].push_back(j);

memset(nr_arc,-1,sizeof(nr_arc));

nr_arc[s]=0;
coada[1]=s;
parcurg(s);


for(i=1;i<=n;i++)g<<nr_arc[i]<<' ';
g.close();
return 0;
}