Cod sursa(job #1090894)

Utilizator projectanduFMI Stanescu Andrei Alexandru projectandu Data 23 ianuarie 2014 11:18:24
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;

ifstream d("bfs.in");
ofstream o("bfs.out");
int a[100001],b[100001],n,m,x;
vector<int> graf[100001];
bool c[100001];

void bfs()
{
    int st=1,dr=1,i;
    while(st<=dr)
    {
        int x=a[st++];
        for(i=0 ; i<graf[x].size() ; i++){
            if(b[graf[x][i]]==-1)
            {
                a[++dr]=graf[x][i];
                b[graf[x][i]]=b[x]+1;
            }
        }
    }
}


int main()
{
    int q;
    d>>n>>m>>x;
    while(d>>m>>q)
        graf[m].push_back(q);
    memset(b,-1,sizeof(b));
    b[x]=0;
    a[1]=x;
    bfs();
    for(int i=1;i<=n;i++)
        o<<b[i]<<' ';

    return 0;
}