Cod sursa(job #1053097)

Utilizator StexanIarca Stefan Stexan Data 12 decembrie 2013 10:54:49
Problema BFS - Parcurgere in latime Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
using namespace std;
#include<fstream>
#include<vector> 

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

vector <int> G[1000];
int C[100000],s,N,m,D[100000]; 
int use[100000]; 

void citire()
{
	int x,y,i;
	f>>N>>m>>s;
	for(i=1;i<=m;i++)
	{
		f>>x;
		f>>y;
		G[x].push_back(y);
	}
}
void BFS(){
    C[1]=s; int k=1;
    use[s]=1;
    for(int i=1;i<=k;i++)
    {
        int Nod=C[i];
        for(int j=0;j<G[Nod].size();j++)
        {
            int Vecin=G[Nod][j];
            if(!use[Vecin])
            {
                C[++k]=Vecin;
                D[Vecin]=D[Nod]+1;
                use[Vecin]=1;
            }
        }
    }
}

int main()
{

	citire();
	   for(int i=1;i<=N;i++)
        D[i]=-1;
    D[s]=0;
	BFS();
	for(int i=1;i<=N;i++) 
		g<<D[i]<<" "; 
	return 0;
}