Cod sursa(job #2030733)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 2 octombrie 2017 09:43:08
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <stdio.h>
#include <fstream>
#define NN 1001
using namespace std;
int viz[NN],a[NN][NN],n,coada[NN];
int cost[NN];
int s;
void citire(){
int m;
freopen("bfs.in","r",stdin);
scanf("%d%d%d",&n,&m,&s);
for(int i=1; i<=m ;++i)
{
    int x,y;
    scanf("%d%d",&x,&y);
    a[x][y]=1;
    //a[y][x]=1;
}

}


int main()
{

    citire();
int stanga,dreapta;
stanga=1; dreapta=0;
coada[++dreapta]=s;
viz[s]++;
int i,j;
while(stanga<=dreapta){
//viz[coada[stanga]]=true;
    for(i=1;i<=n;++i)
        //ma uit pe linie
    if(a[coada[stanga]][i]&&!viz[i]){
            coada[++dreapta]=i;
    viz[i]=1;
       cost[coada[dreapta]]=cost[coada[stanga]]+1;}

 stanga++;
}
freopen("bfs.out","w",stdout);
for(int k=1;k<=n;++k)
    if(k==s)printf("0 ");
    else if(!viz[k])printf("-1 ");
    else printf("%d ",cost[k]);


    return 0;
}