Cod sursa(job #1643694)

Utilizator pusi23Faier Andreea pusi23 Data 9 martie 2016 19:50:18
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int c[100002],viz[100002],pr,ul,n,m,s,u,v,i,x,y;
struct nod
{
    int vecin;
    nod *adr;
};
nod *lv[1000003],*p;
int main()
{
    f>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
        f>>u>>v;
        p=new nod;
        p->vecin=v;
        p->adr=lv[u];
        lv[u]=p;
    }
    for(i=1;i<=n;i++)
        viz[i]=-1;
    pr=1;
    ul=1;
    c[1]=s;
    viz[s]=0;
    while(pr<=ul)
    {
        x=c[pr];
        for(p=lv[x];p!=0;p=p->adr)
        {
            y=p->vecin;
            if(viz[y]==-1)
            {
                ul++;
                c[ul]=y;
                viz[y]=viz[x]+1;
            }
        }
        pr++;
    }
    for(i=1;i<=n;i++)
        g<<viz[i]<<" ";
    f.close();
    g.close();
    return 0;
}