Cod sursa(job #1043394)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 28 noiembrie 2013 15:22:47
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

int n,m,s,x,y,a[10000][10000],i,j;
int viz[100000],v[100000];
int main()
{
    queue<int> coada;
    ifstream f("bfs.in");
    ofstream g("bfs.out");
    f>>n>>m>>s;
    for(i=1;i<=m;i++){
        f>>x>>y;
        a[x][y]=1;
    }
    
    /*for(i=1;i<=n;i++){
            for(j=1;j<=n;j++)
            {
                cout<<a[i][j];
            }
        cout<<'\n';
    }*/
    
    coada.push(s);
    if(a[s][s]==1){
        v[s]=0;
        viz[s]=1;
    }
    int contor=1;
    while(!coada.empty()){
        int element=coada.front();
        //cout<<element<<" "<<coada.size()<<"m ";
        for(i=1;i<=n;i++){
            if(a[element][i]>0 && viz[i]==0){
                coada.push(i);
                viz[i]=viz[element]+1;
                v[i]=contor;
            }
        }
        coada.pop();
        contor++;
    }
    
    cout<<'\n';
    for(i=1;i<=n;i++)
        if(viz[i]==0)
            g<<-1<<" ";
        else
            g<<viz[i]-1<<" ";
    return 0;
}