Cod sursa(job #1169388)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 11 aprilie 2014 00:14:11
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

int n,m,s,x,y, dist[100000], top, step, i;
vector<int> v[100000];
queue<int> coada;

void bfs()
{
    coada.push(s-1); dist[s-1]=1; step=2;
    while(!coada.empty())
    {
        top=coada.front();
        for(i=0;i<v[top].size();i++)
          if(dist[v[top][i]]==0)
            { coada.push(v[top][i]); dist[v[top][i]]=step; }
        coada.pop();
        step++;
    }
}

int main()
{
    f>>n>>m>>s;
    for(i=0;i<m;i++)
      {
         f>>x>>y;
         v[x-1].push_back(y-1);
      }
   bfs();
   for(i=0;i<n;i++)
     g<<dist[i]-1<<" ";
   f.close();g.close();
   return 0;
}