Cod sursa(job #2875960)

Utilizator luca.prunoiuluca prunoiu luca.prunoiu Data 22 martie 2022 18:34:05
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;
const int M=100010;
int n,m,S;

vector<int>graf[M];
queue<int>qu;
int v_dista[M];

void dist()
{
    qu.push(S);
    v_dista[S]=1;
    while(!qu.empty())
    {
        int pos=qu.front();
        qu.pop();
        for(int i=0;i<graf[pos].size();i++)
        {
            if(v_dista[graf[pos][i]]==0)
            {
                v_dista[graf[pos][i]]=v_dista[pos]+1;
                qu.push(graf[pos][i]);
            }
        }
    }
}

int main()
{
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    in>>n>>m>>S;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        in>>x>>y;
        graf[x].push_back(y);
    }
    dist();
    for(int i=1;i<=n;i++)
    {
        if(dist[i]>=0)
            out<<v_dista[i]-1<<' ';
    }
    in.close();
    out.close();
    return 0;
}