Cod sursa(job #3298944)

Utilizator DragosDavidDavid Dragos Nicolae DragosDavid Data 3 iunie 2025 12:21:06
Problema BFS - Parcurgere in latime Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <bits/stdc++.h>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
map<int,vector<int>>netanyahu;
queue<int>lapid;
map<int,int>v;
int main()
{
    int n,m,s;
    fin>>n>>m>>s;
    int a,b;

    for(int i = 0;i<m;i++){
            fin>>a>>b;
            netanyahu[a].push_back(b);
            v[a]=-1;
            v[b]=-1;
    }

    lapid.push(s);
    v[s]=0;
    int q= 1;
    while(!lapid.empty()){
            int bezalel=lapid.front();
        for(int i =0;i<netanyahu[bezalel].size();i++){
            if(v[netanyahu[bezalel][i]]==-1){
                    v[netanyahu[bezalel][i]]=v[bezalel]+1;
            lapid.push(netanyahu[bezalel][i]);
                }
        }
        lapid.pop();
    }
    std::map<int,int>::iterator it=v.begin();
    for(int i = 1;i<=n;i++){
        if(v[i]!=0&&i!=s){
            fout<<v[i]<<" ";
        }
        else{
            if(i==s){
            fout<<v[s]<<" ";
            }
            else{
                fout<<-1<<" ";
            }
        }

    }



    return 0;
}