Aiuto con caccia agli interruttori (problema terry)

ciao, sto avendo problemi ad implementare la mia soluzione sul problema terry “caccia agli interruttori”, il mio programma dovrebbe controllare tutti i percorsi più veloci da un interruttore di tipo 1 (che si collega ad un solo nodo) ad ogni nodo, quindi trova il più grande tra essi e lo restituisce, per trovare il percorso più veloce usa il bfs.

#include <iostream>
#include <vector>
#include <queue>

using namespace std;


int pmin(int par, int arr, vector<vector<int>>& g, int B) {
    vector<int> d(B), p(B);
    vector<bool> b(B);
    queue<int> q;


    q.push(par);
    b[par] = true;
    p[par] = -1;

    while (!q.empty()) {
        int v = q.front();
        q.pop();

        for (int w : g[v]) {
            if (!b[w]) {
                b[w] = true;
                d[w] = d[v] + 1;
                p[w] = v;
                q.push(w);
            }
        }
    }
    return d[arr];
}
void solve(int t) {
    int N, A, B;
    cin >> N >> A >> B;

    vector<int> Z(A), X(B), Y(B);
    vector<vector<int>> g(N);

    for (int i = 0; i < A; i++) {
        cin >> Z[i];
    }

    for (int i = 0; i < B; i++) {
        cin >> X[i] >> Y[i];
        g[X[i]].push_back(Y[i]);
        g[Y[i]].push_back(X[i]);
    }

    int idx = 0, num = 0, ver;
    for (int i = 0; i < A; i++) {
        for (int j = 0; j < B; j++) {
            ver = pmin(Z[i], j, g, B);
            if (ver > num) {
                idx = j;
                num = ver;
            }
        }
    }

    cout << "Case #" << t << ": " << idx << " " << num+1 << "\n";
}

int main() {
    // se preferisci leggere e scrivere da file
    // ti basta decommentare le seguenti due righe:

    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    int T;
    cin >> T;

    for (int t = 1; t <= T; t++) {
        solve(t);
    }

    return 0;
}

Il problema sta nei valori con cui chiami la funzione pmin

che intendi?

Come nodo iniziale iteri da 0 a A, come nodo finale da 0 a B

1 Mi Piace

ho risolto, ho dovuto cambiare un po’ tutto, grazie comunque