Cod sursa(job #2692722)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 3 ianuarie 2021 15:58:56
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;

vector<int>v[1000001];
deque<pair<int, int> >coada;
int t[100001];
bool ver[100001];

int main() {
    int n, m, s, i, x, y, nod, newn;

    ifstream fin("bfs.in");
    ofstream fout("bfs.out");
    fin>>n>>m>>s;
    for(i=1;i<=m;i++) {
            fin>>x>>y;
            v[x].push_back(y);
    }
    coada.push_back(make_pair(s, 0));
    for(i=1;i<=n;i++) {
          t[i]=-1;
    }
    t[s]=0;
    while(!coada.empty()) {
            nod=coada.front().first;
            coada.pop_front();
            ver[nod]=1;
            for(i=0;i<v[nod].size();i++) {
                    newn=v[nod][i];
                    if(ver[newn]==0) {
                            ver[newn]=1;
                            t[newn]=t[nod]+1;
                            coada.push_back(make_pair(newn, t[newn]));
                    }
            }
    }
    for(i=1;i<=n;i++) {
       fout<<t[i]<<" ";
    }


    return 0;
}