Cod sursa(job #2554327)

Utilizator huza_lisandraHuza Lisandra huza_lisandra Data 22 februarie 2020 19:57:23
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <vector>
using namespace std;
vector<int>v[100001];
int n,m,viz[100001],q[100001],nr,ci,rasp[100001];
void bfs(int start)
{
    int cs,z,i,j;
    ci=cs=1;
    q[ci]=start;
    viz[start]=1;
    while(cs<=ci)
    {
        z=q[cs];
        for(j=0;j<v[z].size();j++)
        {
            if(viz[v[z][j]]==-1)
            {
                ci++;
                q[ci]=v[z][j];
                viz[v[z][j]]=viz[z]+1;
            }
        }
        cs++;
    }
}
int main()
{
    int i,x,y,start;
    cin>>n>>m>>start;
    for(i=1;i<=m;i++)
    {
        cin>>x>>y;
        v[x].push_back(y);
    }
    for(i=1;i<=n;i++)
        viz[i]=-1;
    rasp[start]=0;
    bfs(start);
    for(i=1;i<=n;i++)
        if(viz[i]!=-1)
            cout<<viz[i]-1<<" ";
        else
            cout<<viz[i]<<" ";
    return 0;
}