Cod sursa(job #1427585)

Utilizator roberta9533Pavel Roberta roberta9533 Data 2 mai 2015 16:40:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include<fstream>
#include<vector>

using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> G[100001];
int viz[100001],d[100001];
int main()
{
    int n,m,x,y,s,index1,index2,v[100001];
    f>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y;
        G[x].push_back(y);
    }
    v[1]=s;
    viz[s]=1;
    d[s]=0;
    index1=0;
    index2=1;
    while(index1<=index2)
        {
            x=v[index1];
            for(int i=0;i<G[x].size();i++)
                if(viz[G[x][i]]==0)
                    {
                        v[++index2]=G[x][i];
                        viz[G[x][i]]=1;
                        d[G[x][i]]=d[x]+1;
                    }
            index1++;
        }
    for(int i=1;i<=n;i++)
        if(viz[i]==1)
            g<<d[i]<<" ";
        else g<<-1<<" ";
    return 0;
}