Cod sursa(job #3316744)

Utilizator Mirc100Mircea Octavian Mirc100 Data 20 octombrie 2025 14:42:26
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <queue>
#include<fstream>
using namespace std;
const int NMAX = 1e5;
int d[NMAX],n,m,s,viz[NMAX];
vector<int> l_adj[NMAX];

void citire(const char *nume_fisier, int &n, int &m, int &s, vector<int> &l_adj[]){
     ifstream f(nume_fisier);
     int x,y,i;
     f>>n>>m>>s;
     s--;
     for(i=0;i<m;i++){
         f>>x>>y;
         l[x-1].push_back(y-1);
     }
     f.close();
}

void bfs(int s){
	int x,i;
    queue<int> c;
    c.push(s);
    d[s]=0;
    viz[s]=1;
    while(c.size()>0){
        x=c.front();
        c.pop();
        //for(i=0;i<l[x].size();i++){
		//	int y=l[x][i];
		for(auto y:l[x]){
            if(viz[y]==0){
                c.push( y);
                viz[y]=1;
                d[y]=d[x]+1;
            }
        }
     }
}
int main(){
    int n,m,s,i;
    citire("bfs.in",n,m,s,l);

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

	bfs(s);
    ofstream f("bfs.out");

     for(i=0;i<n;i++)
        f<<d[i]<<" ";
     f.close();
     return 0;
}