Cod sursa(job #2395786)

Utilizator FrincuFrinculeasa Alexandru Frincu Data 2 aprilie 2019 21:06:46
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <vector>
#include <deque>
#include <fstream>
using namespace std;
vector <int>graf[100001];
int viz[100001];
deque <int> coada;
int dist[100001];

void bfs(int nod)
{
    int x,lim,i;
    dist[nod]=1;
    viz[nod]=1;
    coada.push_back(nod);
    while(!coada.empty())
    {
        x=coada.front();
        coada.pop_front();
        lim=graf[x].size();
        for(i=0;i<lim;i++)
        {
            if(viz[graf[x][i]]==0)
            {viz[graf[x][i]]=1;
            dist[graf[x][i]]=dist[x]+1;
            coada.push_back(graf[x][i]);
            }
        }
    }
}

int main()
{
	int n, m, s;
	ifstream f("bfs.in");
	ofstream g("bfs.out");
	f >> n >> m >> s;
	int a, b;
	for (int i = 1; i <= m; i++)
	{
		f >> a >> b;
		graf[a].push_back(b);

	}
	bfs(s);
	for (int i = 1; i <= n; i++)
		g << dist[i]-1<< " ";


	return 0;
}