Cod sursa(job #1128922)

Utilizator sam09Muntean Sam sam09 Data 27 februarie 2014 19:17:02
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream  g("bfs.out");
int n,m,s,i;
int a[10000][10000],vizitat[10000];
int lista_noduri[1000],nr;
void BFS(int X)
{
    int nr;
    nr=1;
    lista_noduri[nr]=X;
    vizitat[X]=1;
    int i;
    for(i=1; i<=nr; i++)
    {
        int Nod=lista_noduri[i];
        int j;
        for(j=1; j<=n; j++)
            if(a[Nod][j]==1)
                if(vizitat[j]==0)
                {
                    nr++;
                    lista_noduri[nr]=j;
                    vizitat[j]=vizitat[Nod]+1;
                }
    }
}
int main()
{
    int nr_comp=0;
    f>>n>>m>>s;
    for(i=1; i<=m; i++)
    {
        int x,y;
        f>>x>>y;
        if(x!=y)a[x][y]=1;
    }
    BFS(s);
    for(i=1; i<=n; i++)
    g<<vizitat[i]-1<<" ";
    //g<<nr_comp;
    return 0;
}