Cod sursa(job #2451623)

Utilizator butnaru_vlad2003Butnaru Vlad butnaru_vlad2003 Data 27 august 2019 14:26:11
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda repost Marime 0.98 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
#pragma gcc optimize("O3")
using namespace std;
ifstream in ("bfs.in");
ofstream out ("bfs.out");
vector <int> v[100001];
vector <int> raspuns (100002);
queue <int> coada;
bool vizitat [1000001];
int n;
void lee (int nod)
{
    coada.push(nod);
    vizitat[nod]=1;
    while (!coada.empty())
    {
        int alfa=coada.front();
        coada.pop();
        for (int i=0;i<v[alfa].size();++i)
        {
            if (!vizitat[v[alfa][i]])
            {
                coada.push(v[alfa][i]);
                vizitat[v[alfa][i]]=1;
                raspuns[v[alfa][i]]=raspuns[alfa]+1;
            }
        }
    }
    for (int i=1;i<=n;++i)
        if (!vizitat[i])
            out<<-1<<' ';
        else
            out<<raspuns[i]<<' ';
}
int main()
{
    int m,start;
    in>>n>>m>>start;
    for (int i=1;i<=m;++i)
    {
        int a,b;
        in>>a>>b;
        v[a].push_back(b);
    }
    lee(start);
    return 0;
}