Cod sursa(job #1318371)

Utilizator shadowmasterDumitrescu Marian shadowmaster Data 15 ianuarie 2015 21:39:04
Problema BFS - Parcurgere in latime Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;

//http://www.infoarena.ro/problema/bfs

int a[1000][1000],viz[1000],n,s;
void citire()
{
    int m,x,y;
    ifstream f("bfs.in");
    f>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=1;
    }
    f.close();
}

void BF(int xp)
{
    int c[100],p,u,i,k;
    p=u=1;
    c[p]=xp;viz[xp]=1;
    while (p<=u)
    {
        k=c[p];
        for(i=1;i<=n;i++)
        {
            if(a[k][i]==1 && viz[i]==0)
            {
                u++;c[u]=i; viz[i]=viz[k]+1;
            }
        }
        p++;
    }
}

int main()
{
    citire();
    BF(s);
    int i;
    ofstream g("bfs.out");
    for(i=1;i<=n;i++) g<<viz[i]-1<<' ';
    g.close();
}