Cod sursa(job #2423470)

Utilizator Earthequak3Mihalcea Cosmin-George Earthequak3 Data 21 mai 2019 15:18:19
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
#define maxn 100010
using namespace std;


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

int M,N,S;


bool vis[maxn];
vector <int> A[maxn];
int dist[maxn];

void BFS(int start)
{

    queue <int> c;
    c.push(start);
        int p;
        dist[start] = 0;
        vis[start] = true;

    while(!c.empty())
    {
        p = c.front();
        c.pop();


        for(unsigned int i = 0;i<A[p].size();i++){
                if(!vis[A[p][i]]){
                    vis[A[p][i]] = true;
                c.push(A[p][i]);
                dist[A[p][i]] = dist[p] + 1;
                }

        }

    }


}

int main()
{

    int i,x,y;

    f>>N>>M>>S;
    for(i = 1; i<=M; i++)
    {
        f>>x>>y;
        A[x].push_back(y);
    }


    for(i = 1; i<=N;i++)
        dist[i] = -1;

    BFS(2);
    for(int i = 1; i<= N; i++)
        g<<dist[i]<<" ";





    return 0;
}