Cod sursa(job #1463972)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 21 iulie 2015 22:39:00
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
 #include<vector>
 #define maxn 100010
 using namespace std;
 ifstream f("bfs.in");
 ofstream g("bfs.out");
 int n,m,x,y,i,p,u,xx;
 int b[100001],a[100001];
 vector<int> v[maxn];
 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<<a[i]-1<<" ";
       else
         g<<"-1 ";
     return 0;
 }