Aiutino con Autogrill

Ciao a tutti!

Sto provando a risolvere autogrill usando un set.

Guardando anche gli scorsi thread sul problema sono abbastanza sicuro che la mia soluzione si avvicini a risolver il problema, ma c’è cmq qualcosa che mi sto saltando.

Qualche tip?

Ringrazio in anticipo. :smile:

long long chiedi(long long p) {
    auto lowerIt = autogrills.lower_bound(p); // = o > di p

    if (lowerIt == autogrills.end()) {
        return -1;
    }

    if (*lowerIt == p) {
        return *lowerIt;
    }

    if(lowerIt == autogrills.begin()){
        return *lowerIt;
    }

    long long sx = *prev(lowerIt);
    long long dx = *lowerIt;

    long long distanceSx = p - sx;
    long long distanceDx = dx - p;

    if (distanceSx >= distanceDx) {
        return dx;
    }
    return sx;
}

ciao! cosa fa il tuo codice se c’è un solo autogrill in posizione x=5 e chiedi il più vicino alla posizione x=6?

1 Mi Piace

Ah ma certo…
Ho risolto grazie!