Cod sursa(job #899847)

Utilizator vandrei95Zamfir Vlad vandrei95 Data 28 februarie 2013 16:39:00
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include<fstream>
using namespace std;
int *a[50001];
int main()
{

    fstream f("bfs.in",ios::in),g("bfs.out",ios::out);
    int u,p,k=1,x,y,j,n,i,m,S,viz[50003];
    f>>n>>m>>S;
    for(i=1;i<=n+1;i++)
        a[i]=new int[50001];
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=1;
    }
    int C[50003],vf;
    viz[S]=1;
    p=u=0;
    C[++u]=S;

    while(p<u)
    {
        vf=C[++p];
        for(i=1;i<=n;i++)
            if(a[vf][i]!=0&&viz[i]==0)
            {
                C[++u]=i;
                viz[i]=viz[vf]+1;
            }
    }
    for(i=1;i<=n;i++)
        if(viz[i]==0)
            g<<-1<<" ";
        else
            g<<viz[i]-1<<" ";
}