Cod sursa(job #2384723)

Utilizator nicutkacenko1Nicu Tkacenko nicutkacenko1 Data 21 martie 2019 09:49:20
Problema BFS - Parcurgere in latime Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;

vector <int> list[100001];
queue <int> q;
int n, m, s, x, y;
bool visit[100001];
int a[100010];


void bfs(int node)
{
	q.push(s);
	visit[node] = 1;
	a[node] = 1;

	while(!q.empty())
	{
		int t = q.front();
		q.pop();
		for (int i = 0; i < list[t].size(); i++)
		{
		    if (!visit[list[t][i]])
			{
			    q.push(list[t][i]);
				visit[list[t][i]] = 1;
				a[list[t][i]] = a[t] + 1;
			}
		}
	}
}

int main ()
{
	ifstream cin("bfs.in");
	ofstream cout("bfs.out");

	cin >> n >> m >> s;

	for (int i = 1; i <= m; i++)
	{
		cin >> x >> y;
		list[x].push_back(y);
	}

	bfs(s);

	for (int i = 1; i <= n; i++)
	    fout << a[i]-1 <<" ";
    return 0;
}