Cod sursa(job #1711089)

Utilizator nedelcu11Nedelcu Mihai Vlad nedelcu11 Data 30 mai 2016 15:32:30
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,niv[100001];
vector <int> L[100001];
queue <int> Q;
int main()
{   f>>n>>m>>s;
    for(int u,v,i=1;i<=m;i++)
    {   f>>u>>v;
        L[u].push_back(v);
    }
    Q.push(s);
    niv[s]=1;
    while(!Q.empty())
    {   int t=Q.front(); Q.pop();
        vector <int> :: iterator it=L[t].begin(),sf=L[t].end();
        for(;it!=sf;it++)
            if(!niv[*it]) {Q.push(*it); niv[*it]=niv[t]+1;}
    }
    for(int i=1;i<=n;i++)
        if(niv[i]) g<<niv[i]-1<<' '; else g<<"-1 ";
    g.close(); return 0;
}