Cod sursa(job #1434540)

Utilizator iacovladNot Available iacovlad Data 10 mai 2015 19:30:20
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
int c[100000],a[10000][10000],viz[100000],v[10000][10000];
unsigned n;

void bfs(unsigned i,unsigned w)
{
    c[i]=w;
    unsigned elem=0,j;
    for(j=1;j<=n;j++)
        if(a[i][j]==1&&viz[j]!=1)
        {
            viz[j]=1;
            v[i][elem]=j;
            elem++;
        }
    for(j=0;j<elem;j++)
        bfs(v[i][j],w+1);
}

int citire()
{
    int m,s,x,y;
    ifstream f("bfs.in");
    f>>n>>m>>s;
    viz[s]=1;
	unsigned i;
	for(i=1;i<=n;i++)
		c[i]=-1;
    while(f>>x>>y)
        a[x][y]=1;
    f.close();
    return s;
}

int main()
{
    bfs(citire(),0);
    ofstream g("bfs.out");
    for(unsigned i=1;i<=n;i++)
        g<<c[i]<<" ";
    g.close();
    return 0;
}