Cod sursa(job #3254156)

Utilizator myrra678ana ana myrra678 Data 6 noiembrie 2024 12:26:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
const int NMAX=100000;
bool viz[NMAX+1];
int v[NMAX+1];
vector <int> lista[NMAX+1];
queue<int> q;

void bfs(int nod)
{
	viz[nod]=1;
	q.push(nod);
	v[nod]=1;
	while(!q.empty())
	{
	    int j=q.front();
	    //cout<<j<<" ";
	    for(int i=0;i<lista[j].size();i++)
	    {
	        if(viz[lista[j][i]]==0)
	        {
	            viz[lista[j][i]]=1;
	            q.push(lista[j][i]);
	            v[lista[j][i]]=v[j]+1;
	        }
	    }
	  q.pop();
	}
}

int main()
{
	int n,m,s,i,x,y;
	cin>>n>>m>>s;
	for(i=1; i<=m; i++)
	{
		cin>>x>>y;
		lista[x].push_back(y);
	}
    bfs(s);
    for(i=1;i<=n;i++)
    cout<<v[i]-1<<" ";
	return 0;
}