Cod sursa(job #1241260)

Utilizator Darius15Darius Pop Darius15 Data 13 octombrie 2014 08:47:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector <int> v[100002];
ifstream f("bfs.in");
ofstream g("bfs.out");
int d[100002],n,m,s,i,x,y,j;
queue <int> qs;
int main()
{
    f>>n>>m>>s;
    for (i=1;i<=n;i++)
    d[i]=1<<31-1;
    d[s]=0;
    for (i=1;i<=m;i++)
    {
       f>>x>>y;
       v[x].push_back(y);
    }
    qs.push(s);
    while(!qs.empty())
    {
        x=qs.front();
        qs.pop();
        for (j=0;j<v[x].size();j++)
            if (d[v[x][j]]>d[x]+1) d[v[x][j]]=d[x]+1,qs.push(v[x][j]);
    }
    for (i=1;i<=n;i++)
        if (d[i]==1<<31-1) g<<-1<<' ';
           else g<<d[i]<<' ';
    return 0;
}