Cod sursa(job #1585483)

Utilizator StrokeSimion Valentin Stroke Data 31 ianuarie 2016 09:21:13
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int p,u,st,x,y,i,j,m,n,c[10000002],v[10000002];
bool a[100001][100001];
int main()
{

    f>>n>>m>>st;
    for(i=1;i<=m;++i)
    {
        f>>x>>y;
        a[x][y]=1;

    }

    p=1;
    u=1;
    c[p]=st;
    v[st]=1;
    while(p<=u)
    {
        x=c[p];
        ++p;
        for(i=1;i<=n;++i)
            if(a[x][i]==1 && v[i]==0)
            {
                ++u;
                c[u]=i;
                v[i]=v[x]+1;
            }
    }

    for(i=1;i<=n;++i)
        if(v[i]==0)
            g<<-1<<" ";
        else
           g<<v[i]-1<<" ";

    return 0;
}