Почему получаю ошибку PE (Presentation Error)?

Вот условие задачи: Найдите путь с минимальным количеством пересадок между станциями. введите сюда описание изображения

Я решал, используя алгоритм поиска в ширину.

Вот мое решение:

#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <climits>
using namespace std;

int bfs(map<int, vector<int>> graph, int v, set<int> visited, int goal, int rec){
    int l = visited.size();
    vector<int> neighbors;
    visited.insert(v);
    for (auto a : graph.find(v)->second) {
        if (!(visited.count(a))) {
            visited.insert(a);
            neighbors.push_back(a);
        }
    }
    if (visited.count(goal)) {
        return rec;
    }
    int sum = 0;
    if (l != visited.size()) {
        for (auto a : neighbors) {
            int new_rec = rec + 1;
            sum += bfs(graph, a, visited, goal, new_rec);
        }
        return sum;
    }
    return 0;
}

int main() 
{
    int n;
    cin >> n;
    
    map<int, vector<int>> graph;
    set<int> v;
    for (int i = 0; i < n; i++) {
        int a, b;
        cin >> a >> b;
        v.insert(a);
        v.insert(b);
        if (graph.find(a) != graph.end()) {
            graph.find(a)->second.push_back(b);
        }
        else {
            vector<int> cur;
            cur.push_back(b);
            graph.insert(make_pair(a, cur));
        }
        if (graph.find(b) != graph.end()) {
            graph.find(b)->second.push_back(a);
        }
        else {
            vector<int> cur;
            cur.push_back(a);
            graph.insert(make_pair(b, cur));
        }
    }

    int start, finish;
    cin >> start >> finish;
    set<int> visited;

    int res = bfs(graph, start, visited, finish, 0);
    vector<int> check = graph.find(start)->second;
    set<int> to_check;
    for (auto a : check) {
        to_check.insert(a);
    }
    if (res == 0 && to_check.count(finish)) {
        cout << 0;
    }
    else if (res != 0) {
        cout << res;
    }
    else {
        cout << "No path found";
    }
    

    return 0;
}

Ответы (0 шт):