Cod sursa(job #2534533)

Utilizator filicriFilip Crisan filicri Data 30 ianuarie 2020 18:26:11
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <vector>
#include <queue>
#define nmax 100004
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

int n, m, s, a, b, dist[nmax];
vector<int> G[nmax];
queue<int> q;

int main() {
	f>>n>>m>>s;
	for(int i=1;i<=m;i++) {
		f>>a>>b;
		G[a].push_back(b);
	}

	q.push(s);
	while(!q.empty()) {
		int node=q.front();
		q.pop();
		for(auto ne:G[node])
			if(dist[ne]==0 && ne!=s) {
				dist[ne]=dist[node]+1;
				q.push(ne);
			}
	}

	for(int i=1;i<=n;i++)
		if(dist[i]==0 && i!=s)
			g<<-1<<' ';
		else
			g<<dist[i]<<' ';

	f.close();
	g.close();
	return 0;
}