Cod sursa(job #989732)

Utilizator httpsLup Vasile https Data 26 august 2013 13:14:40
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;
#define FOR(i,a,b) for(i=a;i<=b;i++)
#define cout g
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,i,j,start,a[2000][2000],coada[2001],inc,sf;
bool viz[2001];
int main()
    {
    f>>n>>m>>start;
    for(; m; m--)
        {
        f>>i>>j;
        if(i!=j)
            a[i][j]=1;
        }
    inc=0;
    coada[inc]=start;
    sf=0;
    while(inc<=sf)
        {
        viz[coada[inc]]=true;
        FOR(i,1,n) if (a[coada[inc]][i] && !viz[i])
            {
            coada[++sf]=i;
            a[start][i]=a[start][coada[inc]]+1;
            viz[i]=true;
            }
        inc++;
        }
    FOR(i,1,start-1) if (a[start][i]==0) cout<<-1<<' ';
    else cout<<a[start][i]<<' ';
    cout<<0<<' ';
    FOR(i,start+1,n) if (a[start][i]==0) cout<<-1<<' ';
    else cout<<a[start][i]<<' ';
    //cout<<"\n";
    //FOR(i,0,sf)cout<<coada[i]<<" ";
    return 0;
    }