Cod sursa(job #2424433)

Utilizator MikeVMihai Vasilescu MikeV Data 22 mai 2019 23:42:20
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream in("bfs.in");
ofstream out("bfs.out");

int n, M, S, x, y;
vector <vector <int> > a(1000005);

void BFS(int sursa)
{
	vector <int> dist(n+1, n+1);
	queue <int> q;
	dist[sursa] = 1;
	q.push(sursa);
	while(!q.empty())
	{
		vector <vector <int> > g(n+1);
		int node = q.front();
		
		for(unsigned int i = 0; i < g[node].size(); i ++)
		{
			int u = g[node][i];
			if (dist[u] == 0)
			{
				dist[u] = dist[node] + 1;
				q.push(u);
			}
		}
		q.pop();
	}
	for(int i = 1; i <= n; i++)
		if(dist[i] == 0 && i == sursa)
			out << "0\n";
		else
			out << dist[i] << "\n";
}

void add_edge(int i, int j)
{
	a[i].push_back(j);
	//a[j].push_back(i);
}

int main()
{
	in>>n;
	in>>M;
	in>>S;
	out << n << M << S;
	//a = vector<vector<int> > (n);
	
	for(int i=0;i<M;i++){
		in >> x >> y;
		add_edge(x, y);
	}
	
	for(int i=0;i<n;i++)
		BFS(i);
	return 0;
}