Cod sursa(job #1810598)

Utilizator vladisimovlad coneschi vladisimo Data 20 noiembrie 2016 12:06:25
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int c[100001],dist[100001],n,m,r,p,u;
bool a[10001][10001],v[100001];
void latime(int r){
    int i,k;
    p=1;
    u=1;
    c[u]=r;
    dist[r]=0;
    v[r]=1;
    while(p<=u){
        k=c[p];
        for(i=1;i<=n;i++)
            if(a[k][i]==1&&v[i]==0){
                u++;
                c[u]=i;
                dist[i]=dist[k]+1;
                v[i]=1;
            }
        p++;
    }
}
int main()
{
    fin>>n>>m>>r;
    int k,i,j;
    for(k=1;k<=m;k++){
        fin>>i>>j;
        a[i][j]=1;
        if(i==j)
            a[i][j]=0;
    }
    for(i=1;i<=n;i++)
        dist[i]=-1;
    latime(r);
    for(i=1;i<=n;i++)
        fout<<dist[i]<<" ";
    return 0;
}