Cod sursa(job #2930637)

Utilizator stefan24Sandor Stefan stefan24 Data 28 octombrie 2022 23:35:17
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>
using namespace std;
#define nmax 100000
ifstream f("bfs.in");
ofstream g("bfs.out");

vector<int>a[nmax+5];
vector<int>v(nmax+5,-1);

void bfs(int k){
    queue<int>q;
    v[k]=0;
    q.push(k);
    while(!q.empty()){
        int x=q.front();
        for(auto i : a[x])
        if(v[i]==-1){
            q.push(i);
            v[i]=v[x]+1;
        }
        q.pop();
    }
}

int main()
{
    int n,m,s,x,y;
    f>>n>>m>>s;
    for(int i=1;i<=m;++i)
    {
        f>>x>>y;
        a[x].push_back(y);
    }
    bfs(s);
    for(int i=1;i<=n;++i)
        g<<v[i]<<" ";
}