Cod sursa(job #2398798)

Utilizator teodoradumitrescu9Teodora Dumitrescu teodoradumitrescu9 Data 6 aprilie 2019 10:32:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <vector>
#define DIM 100002
using namespace std;

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

int m, n, s, x, y, st, dr;
bool viz[DIM];
int q[DIM], dist[DIM];
vector<int>graf[DIM];


int main()
{
    in>>n>>m>>s;
    for(int i=1;i<=m;i++){
        in>>x>>y;
        graf[x].push_back(y);
    }

    q[1]=s;
    viz[s]=1;
    st=1;
    dr=1;
    while(st<=dr){
        int nod=q[st];
        st++;
        for(int i=0;i< graf[nod].size();i++){
            if(viz[graf[nod][i]]==0){
                viz[graf[nod][i]]=1;
                dist[graf[nod][i]]=dist[nod]+1;
                q[++dr]=graf[nod][i];


            }
        }
    }
    for(int i=1;i<=n;i++){
        if(dist[i]!=0 || i==s){
            out<<dist[i]<<" ";
        }
        else {
            out<<"-1"<<" ";
        }
    }



    return 0;
}