Cod sursa(job #1710945)

Utilizator teodorauTeodora Untaru teodorau Data 30 mai 2016 06:54:37
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <queue>
#include <list>
#include <fstream>
using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

list<int> nod[10000];
int cost[10000];
int n,m,S;

void BFS(int vertex)
{
    queue<int> q;
    q.push(S);
    int element;
    list<int>::iterator i;
    cost[S]=1;

    while(!q.empty())
        {
            element=q.front();
            q.pop();
            for(i=nod[element].begin();i!=nod[element].end();i++)
            {
                if(cost[*i]==0)
                {
                    cost[*i]=cost[element]+1;
                    q.push(*i);
                }
            }
        }
}

int main()
{
    f>>n>>m;
    f>>S;
    int x,y;
    for(int i=1;i<=n;i++)
        {
            f>>x>>y;
            nod[x].push_back(y);
        }

    BFS(S);

    for(int i=1;i<=n;i++)
        g<<cost[i]-1 << " ";

    return 0;
}