Cod sursa(job #1427249)

Utilizator ggokGeri Gokaj ggok Data 1 mai 2015 19:58:37
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;
int N,M,counter=1,fufu;
int dist[100001];
bool visited[100001];
vector< vector<int > >g;
int main()
{
    freopen("bfs.in","r",stdin);
    freopen("bfs.out","w",stdout);
    cin>>N>>M>>fufu;
    g.resize(N+1);
    for(int i=0;i<M;i++)
    {
        int num1,num2;
        char dir;
        cin>>num1>>num2;
        g[num1].push_back(num2);
    }
    for(int i=1;i<=N;i++)
        dist[i]=-1;
    dist[fufu]=0;
    queue<int>lala;
    lala.push(fufu);
    while(!lala.empty())
    {
        int first=lala.front();
        lala.pop();
        if(!visited[first])
        {
            visited[first]=1;
        for(int i=0;i<g[first].size();i++)
        if(!visited[g[first][i]]){
            lala.push(g[first][i]);
            dist[g[first][i]]=dist[first]+1;
        }
        }
    }
    for(int i=1;i<=N;i++)
        cout<<dist[i]<<" ";



    return 0;
}