Cod sursa(job #2384800)

Utilizator Marcu314Marcu Ionut Marcu314 Data 21 martie 2019 10:35:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#include <queue>
#include <vector>
#include <cstdlib>

using namespace std;

int main()
{
    int N,M,S,a,b;
    queue<int>q;
    FILE *f=fopen("bfs.in","r");
    FILE *out=fopen("bfs.out","w");
    fscanf(f,"%i %i %i",&N,&M,&S);
    vector<int>dist(N,-1);
    dist[S-1]=0;
    vector<vector<int>> g(N);
    for(int x=0;x<M;++x)
    {
        fscanf(f,"%i %i",&a,&b);
        g[a-1].push_back(b-1);
    }
    q.push(S-1);
    int e;
    while(!q.empty())
    {
        e = q.front();
        for(int i: g[e])
        {
            if((dist[i]>dist[e]+1) || (dist[i] == -1))
            {
                dist[i] = dist[e]+1;
                q.push(i);
            }
        }
        q.pop();
    }
    for(int x=0;x<N;x++)

        fprintf(out,"%i ",dist[x]);
    return 0;
}