Cod sursa(job #2418875)

Utilizator filicriFilip Crisan filicri Data 6 mai 2019 18:01:36
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <vector>
#include <queue>
#define nmax 100004
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

int n,m,sp,x,y,dist[nmax];
vector <int> G[nmax];
queue <int> q;

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

    q.push(sp);
    while (!q.empty())
    {
        int node=q.front();
        q.pop();
        for (auto ne:G[node])
            if (dist[ne]==0 && ne!=sp)
            {
                dist[ne]=dist[node]+1;
                q.push(ne);
            }
    }

    for (int i=1;i<=n;i++)
    {
        if (i==sp) g<<0<<' ';
        else if (dist[i]==0) g<<-1<<' ';
        else g<<dist[i]<<' ';
    }   

    f.close();
    g.close();
    return 0;
}