Cod sursa(job #1832306)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 19 decembrie 2016 19:23:57
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#include <vector>

using namespace std;

vector <int> l[100001];
int c[100001],f[100001],sol[100001];
int main()
{
    FILE *fin=fopen ("bfs.in","r");
    FILE *fout=fopen ("bfs.out","w");
    int n,m,x,i,p,u,a,b;
    fscanf (fin,"%d%d%d",&n,&m,&x);
    for (i=1;i<=m;i++){
        fscanf (fin,"%d%d",&a,&b);
        l[a].push_back(b);
    }
    p=u=1;
    c[1]=x;
    f[x]=1;
    sol[x]=1;
    while (p<=u){
        for (i=0;i<l[c[p]].size();i++){
            if (f[l[c[p]][i]]==0){
                f[l[c[p]][i]]=1;
                c[++u]=l[c[p]][i];
                sol[l[c[p]][i]]=sol[c[p]]+1;
            }
        }
        p++;
    }
    for (i=1;i<=n;i++)
        fprintf (fout,"%d ",sol[i]-1);
    return 0;
}