Cod sursa(job #1886613)

Utilizator theodor1289Theodor Amariucai theodor1289 Data 20 februarie 2017 23:44:35
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>
#define INF 999999999
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int> g[100010];
int a, b, sursa, n, m, coada[100010], p, u, dist[100010], viz[100010];

int main()
{
    fin>>n>>m>>sursa;
    for(int i=0;i<m;i++)
    {
        fin>>a>>b;
        g[a].push_back(b);
    }

    for(int i=1;i<=100000;i++)
        dist[i]=99999999;

    p=u=1;
    coada[p]=sursa;
    dist[sursa]=0;
    viz[sursa]=1;
    while(p<=u)
    {
        for(int i=0;i<g[coada[p]].size();i++)
            if(!viz[g[coada[p]][i]])
        {
            viz[g[coada[p]][i]]=1;
            coada[++u]=g[coada[p]][i];
            dist[g[coada[p]][i]]=dist[coada[p]]+1;
        }
        p++;
    }

    for(int i=1;i<=n;i++)
        if(dist[i]!=99999999)
        fout<<dist[i]<<' ';
        else
            fout<<-1<<' ';
    return 0;
}