Cod sursa(job #2618811)

Utilizator Andy_ANDYSlatinaru Andrei Alexandru Andy_ANDY Data 26 mai 2020 12:46:40
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;

ifstream f ( "bfs.in" );
ofstream g ( "bfs.out");

vector < int > v[100005];
int drum[100005];
int n,m,s;
main()
{
    f>>n>>m>>s;

    for(int i=1;i<=m;i++)
    {
        int a,b;
        f>>a>>b;
        v[a].push_back(b);
    }

    for(int i=1;i<=n;i++)
        drum[i]=(1e9);
    drum[s]=0;
    queue < int > q;
    q.push(s);
    while(!q.empty())
    {
        int nod= q.front();
        q.pop();
        for(int i=0;i<v[nod].size();i++)
        {
            int vecin= v[nod][i];
            if(drum[nod]+1<drum[vecin])
            {
                drum[vecin]=drum[nod]+1;
                q.push(vecin);
            }
        }

    }
    for(int i=1;i<=n;i++)
    {   if(drum[i]!=(1e9)) g<<drum[i]<< ' ';
        else g<< "-1 ";
    }

    return 0;
}