Cod sursa(job #1233290)

Utilizator cristi23ciulica cristian cristi23 Data 25 septembrie 2014 08:04:44
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int i,m,n,a[1001][1001],q[1001],v[1001],c[1001],viz[1001],p,u,s,x,y;
int main(){
    f>>n>>m>>s;
    for (i=1;i<=m;i++){
        f>>x>>y;
        v[x]++;
        a[x][0]=v[x];
        a[x][v[x]]=y;
    }
    for (i=1;i<=n;i++)
        c[i]=-1;
    q[1]=s;
    viz[s]=1;
    c[s]=0;
    p=u=1;
    while (p<=u){
        for (i=1;i<=v[q[p]];i++)
            if (viz[a[q[p]][i]]==0){
                u++;
                q[u]=a[q[p]][i];
                viz[a[q[p]][i]]=1;
                c[a[q[p]][i]]=c[q[p]]+1;
        }
    p++;
    }
    for (i=1;i<=n;i++)
        g<<c[i]<<" ";
    return 0;
}