Cod sursa(job #2602775)

Utilizator hudisteanumihaelaHudisteanu Mihaela hudisteanumihaela Data 17 aprilie 2020 20:13:43
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;

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

struct nodd
{
    bool vizitat;
    vector <int> vecini;
} nod[NMAX],curr;
queue <int> coada;
int dist[NMAX],n,m,s;

int main()
{
    int i,a,b;
    fin>>n>>m>>s;
    for(i=1; i<=n; i++)
        dist[i]=-1;
    for(i=1; i<=m; i++)
    {
        fin>>a>>b;
        nod[a].vecini.push_back(b);
    }
    coada.push(s);
    nod[s].vizitat=1;
    dist[s]=0;
    while(!coada.empty())
    {
        curr=nod[coada.front()];
        for(i=0; i!=curr.vecini.size() ; i++)
            if(nod[curr.vecini[i]].vizitat==0)
            {
                nod[curr.vecini[i]].vizitat=1;
                coada.push(curr.vecini[i]);
                dist[curr.vecini[i]]=dist[coada.front()]+1;
            }
        coada.pop();
    }
    for(i=1; i<=n; i++)
        fout<<dist[i]<<' ';
    return 0;
}