Cod sursa(job #1968478)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 17 aprilie 2017 18:35:04
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int i,j,n,m,s,x,y,u,p,viz[100001],q[200001],cost[100001];
vector <int>G[100001];
void bfs(int nod)
{
    viz[nod]=1;
    while(p<=u){
    for(int j=0;j<G[nod].size();j++)
    if(viz[G[nod][j]]==0){
    q[++u]=G[nod][j];
    cost[G[nod][j]]=cost[nod]+1;
    viz[G[nod][j]]=1;
    }
    p++;
    bfs(q[p]);}

}
int main()
{
   f>>n>>m>>s;
   for(i=1;i<=m;i++){
    f>>x>>y;
    G[x].push_back(y);

   }
    u=1;
    bfs(s);
    for(i=1;i<=n;i++)
    if(viz[i]==0)
    g<<-1<<" ";
    else
        g<<cost[i]<<" ";
    return 0;
}