Cod sursa(job #2194500)

Utilizator AlexandruPaulSirbu Alex AlexandruPaul Data 13 aprilie 2018 16:57:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <deque>
#define Maxx 100001
using namespace std;
deque <int> Q;
vector <int> A[Maxx];
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int i,j,n,m,start_point,x,y,cost[Maxx];
void bfs(int node)
{
    for (int i=1;i<=n;i++) cost[i]=-1;
    Q.push_back(node);
    cost[node]=0;
    while (!Q.empty())
    {
        node=Q.front();
        Q.pop_front();
        for (int i=0;i<A[node].size();i++)
        {
            if (cost[A[node][i]]==-1)
            {
                Q.push_back(A[node][i]);
                cost[A[node][i]]=cost[node]+1;
            }
        }
    }
}
int main()
{
    fin>>n>>m>>start_point;
    for (i=1;i<=m;i++)
    {
        fin>>x>>y;
        A[x].push_back(y);
    }
    bfs(start_point);
    for (i=1;i<=n;i++)
        fout<<cost[i]<<" ";
    return 0;
}