Cod sursa(job #2764505)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 21 iulie 2021 11:37:52
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
vector<int>a[100005];
int f[100005];
int dist[100005];
queue <int>q;
int main()
{
    int n,m,s,x,y,i,num;
    fin>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
    fin>>x>>y;
    a[x].push_back(y);
    }
    q.push(s);
    f[s]=1;
    while(!q.empty())
    {
        num=q.front();
        for(i=0;i<a[num].size();i++)   ///vecinii nevizitati
            if(f[a[num][i]]==0)
        {
            q.push(a[num][i]);
            f[a[num][i]]=1;
            dist[a[num][i]]=dist[num]+1;
        }
        q.pop();
    }
    for(i=1;i<=n;i++)
    {
        if(f[i]==0)
            fout<<"-1 ";
        else
            fout<<dist[i]<<" ";
    }
    return 0;
}