Cod sursa(job #3318117)

Utilizator gpl12Giulia gpl12 Data 27 octombrie 2025 10:01:21
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

queue <int> q;
int n, m, s;
vector <int> l[100000];
int viz[100000], d[100000];

void bfs(int s){
    int x, i;
    q.push(s);
    viz[s]=1;
    d[s]=0;

    while(q.size()>0){
        x=q.front();
        q.pop();
        for(i=0; i<l[x].size(); i++){
            int y=l[x][i];
            if(viz[y]==0){
                q.push(y);
                viz[y]=1;
                d[y]=d[x]+1;
            }

        }

    }


}

int main(){
    ifstream fin("bfs.in");
    fin>>n>>m>>s;
    int x,y;
    for(int i=0;i<m;i++){
         fin>>x>>y;
         l[x-1].push_back(y-1); 
     }
     fin.close();

     for(int i=0;i<n;i++)
        d[i]=-1;

    bfs(s);
    ofstream f("bfs.out");
    for(int i=0;i<n;i++) 
        f<<d[i]<<" ";
    f.close();

    return 0;

}