Cod sursa(job #2288933)

Utilizator buhaidarius@gmail.comBuhai Darius [email protected] Data 24 noiembrie 2018 09:43:28
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
//
//  main.cpp
//  Bfs
//
//  Created by Darius Buhai on 24/11/2018.
//  Copyright © 2018 Darius Buhai. All rights reserved.
//

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

int n,m,s;
int a[100001][100001];

void read()
{
    cin>>n>>m>>s;
    s--;
    int x,y;
    for(int i=0;i<m;i++){
        cin>>x>>y;
        a[y-1][x-1] = 1;
    }
}

int bfs(int x, int k = 0)
{
    if(x==s)
        return k;
    for(int i=0;i<n;i++)
        if(a[x][i] && i!=x){
            int kl = bfs(i, k+1);
            if(kl!=-1)
                return kl;
        }
    return -1;
}

int main() {
    
    freopen("bfs.in", "r", stdin);
    freopen("bfs.out", "w", stdout);
    read();
    for(int i=0;i<n;i++)
        cout<<bfs(i)<<" ";
    return 0;
}