Cod sursa(job #2031652)

Utilizator Garen456Paun Tudor Garen456 Data 3 octombrie 2017 17:30:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,s;
vector <int> V[100005];
queue <int> C;
int dist[100005];

void BFS()
{ C.push(s);
    vector <int>::iterator it;
   int x;
    while(!C.empty())
    {  x=C.front();
       C.pop();
        for(it=V[x].begin();it!=V[x].end();++it)
            if(dist[*it]==-1  )
        { dist[*it]=dist[x]+1;
            C.push(*it);
        }
    }

}

int main()
{  int i,a,b;
    fin>>n>>m>>s;
    for(i=1;i<=n;++i)
        dist[i]=-1;
    dist[s]=0;
    for(i=1;i<=m;++i)
    { fin>>a>>b;
        V[a].push_back(b);
    }
   BFS();
    for(i=1;i<=n;++i)
        fout<<dist[i]<<" ";
    return 0;
}