Cod sursa(job #3168699)

Utilizator luca.pislaruAho.Corasike luca.pislaru Data 13 noiembrie 2023 07:49:47
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#include<vector>
using namespace std;
int coada[100002], f[100002];
struct ura
{
    vector<int>v;
}g[100002];
int main()
{
    ifstream cin ("bfs.in");
    ofstream cout("bfs.out");
    int n, m, s, i, inc, sf, maxx=0, x, y, l;
    cin>>n>>m>>s;
    for (i=1;i<=m;i++)
    {
        cin>>x>>y;
        g[x].v.push_back(y);
        maxx=max(maxx, max(x, y));
    }
    inc=1;
    sf=1;
    coada[inc]=s;
    while (inc<=sf)
    {
        l=g[coada[inc]].v.size();
        for (i=0;i<l;i++)
        {
            if (f[g[coada[inc]].v[i]]==0&&g[coada[inc]].v[i]!=s)
            {
                sf++;
                coada[sf]=g[coada[inc]].v[i];
                f[g[coada[inc]].v[i]]=f[coada[inc]]+1;
            }
        }
        inc++;
    }
    for (i=1;i<=maxx;i++)
    {
        if (f[i]==0&&i!=s)
        {
            cout<<"-1"<<" ";
        }
        else
        {
            cout<<f[i]<<" ";
        }
    }
    return 0;
}