Cod sursa(job #1929395)

Utilizator geo_furduifurdui geo geo_furdui Data 17 martie 2017 16:16:52
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream cin ("bfs.in");
ofstream cout ("bfs.out");
vector <int> t[100001];
queue <int> coada;
int n,m,start;
int used[100010];
void read ()
{ int x,y;
    cin>>n>>m>>start;
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y;
        t[x].push_back(y);
    }
}
void bfs ()
{
    coada.push(start); used[start]=1;
    while(!coada.empty())
    {
        int nod=coada.front();
        for(vector <int > :: iterator i = t[nod].begin(); i!=t[nod].end(); ++i)
        {
             if(used[*i]==0)
             {
                 used[*i]=used[nod]+1;
                 coada.push(*i);
             }
        }
        coada.pop();
    }
}
void write ()
{
    for(int i=1;i<=n;i++)
      cout<<used[i]-1<<" ";
}
int main()
{
    read();
    bfs();
    write();
    cin.close();
    cout.close();
    return 0;
}