Cod sursa(job #2667680)

Utilizator zaBogdanZavadovschi Bogdan zaBogdan Data 3 noiembrie 2020 18:52:54
Problema BFS - Parcurgere in latime Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
const int maxNr = 100100;
bool viz[maxNr];
int costuri[maxNr];

int main(){
	int n,m,start;
	vector<int> v[maxNr];
	queue<int> q;
	ifstream f("bfs.in");
	f >> n >> m >> start;
	for(int i=0;i<m;i++){
		int x,y;
		f >> x >> y;
		v[x].push_back(y);
	}
	f.close();
	q.push(start);
	memset(costuri, -1, sizeof(costuri));
	costuri[start]=0;
	viz[start]=1;
	while(!q.empty()){
		int nod = q.front();
		q.pop();
		for(auto it : v[nod])
			if(!viz[it]){
				viz[it]=1;
				cout << it << endl;
				costuri[it]=costuri[nod]+1;
				q.push(it);
			}
	}
	ofstream g("bfs.out");
	for(int it=1;it<=n;it++)
		g << costuri[it] << ' ';
	g.close();
    //linux output debug.
    cout << '\n';
    return 0;
}