Cod sursa(job #2425689)

Utilizator andreim98Andrei Manolache andreim98 Data 24 mai 2019 23:37:21
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;

int n,m,start;
int a[101][101];
int p[101][101];
const int inf = 10000000;
int viz[100001];
vector<int>d;

vector<int>L[100001];
vector<int>v;

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

void citire()
{
 fin>>n>>m>>start;
 int i,j;
 d.resize(n+1,-1);
 for(i=1;i<=m;i++)
 {
     int x,y;
     fin>>x>>y;
    L[x].push_back(y);
 }
}

void bf(int start)
{
    int i;
    queue<pair<int,int> >Q;
    Q.push({0,start});
    d[start]=0;
    viz[start]=1;
    while(!Q.empty())
    {
        int x=Q.front().second;
        int c=Q.front().first;
        Q.pop();
        for(auto p:L[x])
            if(!viz[p])
        {
            d[p]=d[x]+1;
            Q.push({d[p],p});
            viz[p]=1;
        }
    }
}

int main()
{
    int nr_c=0;
    citire();
    bf(start);

    for(int i=1;i<=n;i++)
        fout<<d[i]<<" ";
    return 0;
}