Cod sursa(job #864221)

Utilizator nosurrender99Bura Bogdan nosurrender99 Data 24 ianuarie 2013 19:45:42
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <cstring>
#include <queue>
using namespace std;

fstream f("bfs.in",ios::in), g("bfs.out", ios::out);

struct muchie{
    int a,b;
}ma[1000000];

bool vis[100000];

int main()
{
    int n,m,first,v[100000];
    queue <int> q;
    memset(v,-1,100000);
    f>>n>>m>>first;
    v[first]=0;
    for(int i=1 ;i<=m; ++i)
    {
        f>>ma[i].a>>ma[i].b;
    }
    vis[first]=true;
    q.push(first);
    while (!q.empty())
    {
        for(int i=1;i<=m;i++)
            if (q.front()==ma[i].a && vis[ma[i].b]==false)
            {
                q.push(ma[i].b);
                v[ma[i].b]=v[ma[i].a]+1;
            }
        q.pop();
    }
    for(int i=1;i<=n;i++)
        g<<v[i]<<" ";
    return 0;
}