Cod sursa(job #990481)

Utilizator StickmanLazar Alexandru Stickman Data 28 august 2013 14:07:39
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

int p[1000002], s[1000002], c[100000], cost[100000];
int n,m,g;

void bfs1()
{
    int i, j, k,cl;
    c[0]=g;
    j=1;
    cost[g]=0;
    for(i=0; i<j; i++)
    {

        for(k=0; k<m; k++)
        {
            if(p[k]==c[i] && cost[s[k]]==-1)
            {
                c[j]=s[k];
                cost[c[j]]=cost[c[i]]+1;
                j++;
            }
        }
    }
}

int main()
{
    int i;
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    in>>n;
    in>>m;
    in>>g;
    for(i=0; i<m; i++)
        in>>p[i]>>s[i];
    in.close();
    for(i=1; i<=n; i++)
    {
        cost[i]=-1;
    }
    bfs1();
    for(i=1; i<=n; i++)
{
        out<<cost[i]<<" ";
}
    return 0;
}