Cod sursa(job #2764503)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 21 iulie 2021 11:29:01
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int a[1001][1001];
int f[1001];
int dist[1001];
queue <int>q;
int main()
{
    int n,m,s,x,y,i,num;
    fin>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
    fin>>x>>y;
    a[x][y]=1;
    }
    q.push(s);
    f[s]=1;
    while(!q.empty())
    {
        num=q.front();
        for(i=1;i<=n;i++)   ///vecinii nevizitati
            if(a[num][i]==1 && f[i]==0)
        {
            q.push(i);
            f[i]=1;
            dist[i]=dist[num]+1;
        }
        q.pop();
    }
    for(i=1;i<=n;i++)
    {
        if(f[i]==0)
            fout<<"-1 ";
        else
            fout<<dist[i]<<" ";
    }
    return 0;
}