Cod sursa(job #1511169)

Utilizator Nakamura11Ovidiu Moldovanu Nakamura11 Data 26 octombrie 2015 09:40:29
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#define nmax 100001
#include <fstream>
#include<vector>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
vector<int>b[nmax];
int c[nmax], viz[nmax], n;
void BF(int x)
{int i, p, u, k, w;
 c[1]=x;
 p=u=1;
 viz[x]=1;
 while(p<=u)
    {k=c[p];
     p++;
     for(i=0;i<b[k].size();i++)
        {w=b[k][i];
         if(!viz[w])
            {u++;
             c[u]=w;
             viz[w]=viz[k]+1;
            }
        }
    }
}
int main()
{int i, m, x, y, s;
 fin>>n>>m>>s;
 for(i=1;i<=m;i++)
    {fin>>x>>y;
     b[x].push_back(y);
    }
    BF(s);
    for(i=1;i<=n;i++)
        fout<<viz[i]-1<<" ";
    return 0;
}