Cod sursa(job #2220752)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 12 iulie 2018 14:37:05
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
long a[100001][100001]={0},n,prim=1,ultim=1,c[100001],i,x,y,v[100001]={0},varf,m,s[100001],u;
void bfs(){
    long k;
    while(prim<=ultim)
        {varf=c[prim];
        for(k=1;k<=n;k++)
            if(a[varf][k]&&!v[k]) {ultim++;c[ultim]=k;v[k]=1;s[k]=s[varf]+1;}
    prim++;}}
int main(){
  f>>n>>m>>u;
  for(i=1;i<=m;i++) {f>>x>>y;a[x][y]=1;}
  for(i=1;i<=n;i++) s[i]=-1;
  c[prim]=u;v[u]=1;s[u]=0;
  bfs();
  for(i=1;i<=n;i++) g<<s[i]<<" ";
 return 0;}