Cod sursa(job #2370359)

Utilizator pinbuAdi Giri pinbu Data 6 martie 2019 11:46:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#define M 1000001
#define N 100001
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int> v[M];
queue<int> q;
int d[N],n,m,vf;

int main()
{
    int i,a,b;
    fin>>n>>m>>vf;
    
    for(i=1;i<=m;i++)
    {
        fin>>a>>b;
        v[a].push_back(b);
    }
    
    for(i=1;i<=n;i++)
        d[i]=M;
    d[vf]=0;
    q.push(vf);
    
    while(!q.empty())
    {
        vf=q.front();
        q.pop();
        
        for(auto s:v[vf])
            if(d[s]>d[vf]+1)
            {
                d[s]=d[vf]+1;
                q.push(s);
            }
    }
    
    for(i=1;i<=n;i++)
        if(d[i]==M)
            fout<<"-1 ";
        else
            fout<<d[i]<<" ";
    return 0;
}