Cod sursa(job #1142179)

Utilizator costyrazvyTudor Costin Razvan costyrazvy Data 13 martie 2014 16:19:36
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> G[100005];
queue <int> Q;
int n,m,Lg[100005],i,k,r,S;
void bfs(int P){
    unsigned int nod,i;
    Q.push(P);
    Lg[P]=1;
    while(!Q.empty())
    {
        nod=Q.front();
        for(i=0;i<G[nod].size(); i++)
        if (Lg[G[nod][i]]==0) Q.push(G[nod][i]),Lg[G[nod][i]]=Lg[nod]+1;
        Q.pop();
    }
}
int main()
{
    f>>n>>m>>S;
    for(i=1;i<=m;i++)f>>r>>k,G[r].push_back(k);
    bfs(S);
    for(i=1;i<=n;i++)
        if(Lg[i]==0)
            g<<"-1 ";
        else
            g<<Lg[i]-1<<" ";
    f.close();
    g.close();
    return 0;
}