Cod sursa(job #625831)

Utilizator IULIABRIGITABARTA IULIA-BRIGITA IULIABRIGITA Data 25 octombrie 2011 17:54:08
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include<fstream>
#include <vector>
using namespace std;
int viz[10000],n,m,x,y,cont=1,c[10000];
double long k,p[10000];
vector <int> A[10000];
ofstream g("bfs.out");
         void citire()
      {
         ifstream f("bfs.in");
         int x,y,i;
         f>>n>>m>>k;
         int l;
         for(l=1;l<=m;l++)
      {
         f>>x>>y;
         A[x].push_back(y);
      }
f.close();}
           void bfs(int k)
{    int li,ls,i,n,nod;
           li=1;
           ls=1;
           c[li]=k;
           viz[k]=1;
     while (li<=ls)
{          nod=c[li];
                n=A[nod].size();
     for(i=0;i<n;i++)
           if (viz[A[nod][i]]==0)
{           ls++; 
            c[ls]=A[nod][i];
            viz[A[nod][i]]=1;
            p[A[nod][i]]=p[nod]+1;
}
            li++;}}
     int main()
{          int i;
         citire();
         bfs(k);
         for(i=1;i<=n;i++)
         if (p[i]!=0||i==k) g<<p[i]<<" ";
         else g<<-1<<" ";
         g.close();
         return 0;}