Cod sursa(job #1805266)

Utilizator novistaAlex Staicu novista Data 13 noiembrie 2016 16:43:01
Problema BFS - Parcurgere in latime Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
int p,u,v[100001],n,m,c[100001],a[500][500];
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
void latime(int r)
{
    int i,k;
    p=1;
    u=1;
    c[p]=r;
    v[r]=1;
    while (p<=u)
    {
        k=c[p];
        for (i=1;i<=n;i++)
            if (v[i]==0&&a[k][i]==1)
            {
                u++;
                c[u]=i;
                v[i]=v[k]+1;
            }
        p++;
    }
}
int main()
{
    int i,j,h,s;
    fin>>n>>m>>s;
    for (h=1;h<=m;h++)
    {
        fin>>i>>j;
        a[i][j]=1;
       // a[j][i]=1;
    }
    latime(s);
    v[s]=1;
    for (i=1;i<=n;i++)
            fout<<v[i]-1<<" ";
    fin.close();
    fout.close();
    return 0;
}