Cod sursa(job #1711088)

Utilizator nedelcu11Nedelcu Mihai Vlad nedelcu11 Data 30 mai 2016 15:28:30
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,c[100001], niv[100001];
vector <int> L[100001];
int main()
{   f>>n>>m>>s;
    for(int u,v,i=1;i<=m;i++)
    {   f>>u>>v;
        L[u].push_back(v);
    }
    c[1]=s;
    niv[s]=1;
    int p=1,u=1;
    while(p<=u)
    {   int t=c[p];
        for(unsigned int i=0;i<L[t].size();i++)
            if(!niv[L[t][i]]) {c[++u]=L[t][i]; niv[L[t][i]]=niv[t]+1;}
        p++;
    }
    for(int i=1;i<=n;i++)
        if(niv[i]) g<<niv[i]-1<<' '; else g<<"-1 ";
    g.close(); return 0;
}