Cod sursa(job #2198890)

Utilizator roberttrutaTruta Robert roberttruta Data 25 aprilie 2018 19:16:33
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>
using namespace std;
vector <int> v[100002];
int i,a,b,n,m,G[100002],dist[100002],c[100002],start,p,t;
int main()
{
    ifstream f("bfs.in");
    ofstream g("bfs.out");

    f>>n>>m>>start;
    for(i=1;i<=m;i=i+1)
    {
        f>>a>>b;
        v[a].push_back(b);
    }
    for(i=1;i<=n;i=i+1)
    {
        G[i]=v[i].size();
        dist[i]=-1;
    }

    c[1]=start; p=1; t=1; dist[start]=0;
    while(p<=t)
    {
        for(i=0;i<G[c[p]];i++)
            if(dist[v[c[p]][i]]==-1)
        {
            c[++t]=v[c[p]][i];
            dist[c[t]]=dist[c[p]]+1;
        }
        p++;
    }

for(i=1;i<=n;i=i+1)
    g<<dist[i]<<' ';

    return 0;
}