Cod sursa(job #1473362)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 19 august 2015 09:09:56
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
#include<vector>
#define lg 100001
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int a[lg],i,j,b[lg],n,m,x,y,p,u,xx;
vector <int> v[lg];
int main()
{
    f>>n>>m>>xx;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        v[x].push_back(y);
    }
    p=1;
    u=1;
    b[p]=xx;
    a[xx]=1;
    while(p<=u)
    {
        if(v[b[p]].size()>0)
        {
            for(i=0;i<=v[b[p]].size()-1;i++)
            {
                if(a[v[b[p]][i]]==0)
                {
                    u++;
                    b[u]=v[b[p]][i];
                    a[v[b[p]][i]]=a[b[p]]+1;
                }
            }
        }
        p++;
    }
    for(i=1;i<=n;i++)
      if(a[i]==0)
        g<<-1<<" ";
      else
        g<<a[i]-1<<" ";
    return 0;
}