Cod sursa(job #2119117)

Utilizator FloareaCucura Floarea Ludovica Floarea Data 31 ianuarie 2018 17:54:39
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");

int V[10024][10024];//listele de adiacenta
int n,m,s;//noduri/muchii/start
int p[300000];//0 sau 1
int D[300000];//distantele minime

void citire()
{
   int x,y,i;
   fin>>n>>m;
   for(i=1;i<=m;i++)
   {
       fin>>x>>y;
       V[x][0]++; V[x][V[x][0]]=y;
       V[y][0]++; V[y][V[y][0]]=x;
   }
   fin>>s;
}

void BF(int s)
{
    int st,dr,i,x[50],j;
    st=dr=1;
    p[s]=1;
    x[1]=s;
    D[s]=0;
    while(st<=dr)
    {
        for(i=1; i<=V[x[st]][0]; i++)
         {
            j=V[x[st]][i];
            if(!p[j])
                {
                    dr++;
                    x[dr]=j;
                    p[j]=1;
                    D[j]=D[x[st]]+1;
                }
         }
         st++;
    }
    for(i=1;i<=dr;i++) fout<<s<<"->"<<i<<":"<<D[i]<<endl;
}

int main()
{
    citire();
    BF(s);
    fin.close();
    fout.close();
    return 0;
}