Cod sursa(job #1505505)

Utilizator alexandra5004Rotaru Alexandra alexandra5004 Data 19 octombrie 2015 11:59:15
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int>b[100001];
int c[100001], n, viz[100001];
void BFS(int x)
{  int p,u,z,j,w;
   c[1]=x;
   p=u=1;
   viz[x]=1;
   while(p<=u)
    { z=c[p];
      p++;
      for(j=0;j<b[z].size() ;j++)
        { w=b[z][j];
          if(!viz[w])
            { u++;
              c[u]=w;
              viz[w]=viz[z]+1;
            }
        }
    }
}

int main()
{   int m,s,x,y,i;
    fin>>n>>m>>s;
    for(i=1;i<=m;i++)
        { fin>>x>>y;
          b[x].push_back(y);
        }
    BFS(s);
    for(i=1;i<=n;i++)
        fout<<viz[i]-1<<" ";
}