Cod sursa(job #1042644)

Utilizator octav1234Pocola Tudor Octavian octav1234 Data 27 noiembrie 2013 15:27:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

ifstream fi("bfs.in");
ofstream fo("bfs.out");

int dist[100005];
int N,M;
int z,x,y,i;
int w;

vector <int> S[100005];

queue <int> Q;
bool ver=true;

int main()
{
    fi>>N>>M>>z;
    Q.push(z);

    for(i=1;i<=N;i++)
        dist[i]=-1;
    dist[z]=0;
    for(i=1;i<=M;i++)
    {
        fi>>x>>y;
        S[x].push_back(y);
    }
    while(!Q.empty())
    {
        x=Q.front();
        Q.pop();
        w=S[x].size();
        for(i=0;i<S[x].size();i++)
            if(dist[S[x][i]]==-1)
            {
                dist[S[x][i]]=dist[x]+1;
                Q.push(S[x][i]);
            }
    }
    for(i=1;i<=N;i++)
        fo<<dist[i]<<" ";
    fo<<'\n';
    return 0;
}