Cod sursa(job #2460474)

Utilizator mionelIon. M mionel Data 23 septembrie 2019 19:30:13
Problema BFS - Parcurgere in latime Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<queue>
#include<vector>
#include <list>
using namespace std;
int n,m,s,viz[100000],cost[100000];
int p,u;

queue  <int,list <int> > c;
vector <int> a[100000];
int parcurg(int i)
{
	viz[i]=1;
	int j,v;

	c.push(i);
	while(c.size())
	{
	    p=c.front();
		for(j=0;j<a[p].size();j++)
			{ v=a[p][j];
			if(viz[v]==0)
			{

				viz[v]=1;
				c.push(v);
			//	cost[j]=cost[j]+1;;
				//if(a[s][j]==0)
					cost[v]=cost[p]+1;
			}

			}
			//ActualizareCoada();
		c.pop();

	}
}



int main()
{
	ifstream f("bfs.in");
	f>>n>>m>>s;
	int i,j,k;
	for(i=1;i<=m;i++)
		{
			f>>j>>k;
			a[j].push_back(k);
		}
	parcurg(s);
	ofstream g("bfs.out");
	for(i=1;i<=n;i++)
		{if((cost[i]==0)&&(i!=s))
			g<<-1<<" ";
			else
		g<<cost[i]<<" ";
		}
 return 0;
}