Cod sursa(job #3212171)

Utilizator danyyyDaniel danyyy Data 11 martie 2024 11:30:19
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include<bits/stdc++.h>
using namespace std;
int d[100001];
vector<int>v[100001];
queue<int>Q;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void bfs(int x)
{
    for(auto y:v[x])
    {
        if(d[y]==-1)
        {
            d[y]=d[x]+1;
            Q.push(y);
        }
    }
    Q.pop();
}
int main()
{
    int n,i,m,s;
    fin>>n>>m>>s;
    int x1,x2;
    for(i=1;i<=m;i++)
    {
        fin>>x1>>x2;
        v[x1].push_back(x2);
    }
    fill(d,d+n+1,-1);
    d[s]=0;
    Q.push(s);
    while(Q.empty()==0)
    {
        bfs(Q.front());
    }
    for(i=1;i<=n;i++)
    {
        fout<<d[i]<< ' ';
    }
}