Cod sursa(job #2427735)

Utilizator bubblegumixUdrea Robert bubblegumix Data 1 iunie 2019 23:35:55
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include<fstream>
using namespace std;
long long a[10001][10001],i,j,n,m,x,y,pl,viz[1000001],coada[1000001],el,p,u,drum[1000001];
ifstream f("bfs.in");
ofstream g("bfs.out");
int main()
{
    f>>n>>m>>pl;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=1;
    }
    coada[1]=pl;
    viz[pl]=1;
    p=1;
    u=1;
    while(p<=u)
    {
        el=coada[p];
        for(i=1;i<=n;i++)
            if(a[el][i]==1&&viz[i]==0)
            {
              u++;
              coada[u]=i;
              viz[i]=1;
            }
        p++;
    }
    for(i=1;i<=n;i++)
        if(viz[i]==1)
           {
              for(j=1;j<=n-1;j++)
                   if(coada[j]==i)
                             break;
                      else
                        if(a[coada[j]][coada[j+1]]==1)
                                 drum[i]++;

           }
           else
            drum[i]=-1;
    for(i=1;i<=n;i++)
        g<<drum[i]<<" ";
    f.close();
    g.close();


return 0;
}