Cod sursa(job #2791236)

Utilizator luciabianca24Tudorache Lucia Bianca luciabianca24 Data 30 octombrie 2021 11:41:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
int n,nodp;
vector<vector<int>>g;
vector<int>d;
queue<int>q;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void read()
{
    int x,y,m;
    fin>>n>>m>>nodp;
    g=vector<vector<int>>(n+1);
    d=vector<int>(n+1);
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y;
        g[x].push_back(y);
    }
}
void BFS(int np)
{
    q.push(np);
    d[np]=1;
    while(!q.empty())
    {
        np=q.front();
        q.pop();
        for(auto e:g[np])
            if(!d[e])
            q.push(e),d[e]=d[np]+1;
    }
}
void solve()
{
    BFS(nodp);
    for(int i=1;i<=n;i++)
        if(d[i]==0)
        fout<<-1<<' ';
    else
        fout<<d[i]-1<<' ';
}
int main()
{
    read();
    solve();
}