Números consecutivos a distancia menor o igual a 2, solo dos consecutivos a distancia 1.

En este ejercicio hay que implementar una función que recibe un vector
de enteros que cumple lo siguiente. Cualquier par de valores
consecutivos del vector se encuentran a una distancia menor o igual a 2.
Además, solo hay exactamente una pareja de valores consecutivos de este
vector que se encuentren a distancia exactamente 1. Por ejemplo, la
siguiente secuencia de valores cumple esta condifición:

    3 1 1 2 4 2 2 0

La función tiene que devolver la posición (indexando desde 0) del primer
elemento de la pareja consecutiva que se encuentre a distancia 1. Con el
ejemplo anterior como entrada, la función tendría que retornar 2.

Esta es la cabecera:

    // Pre: Sea n el tamaño, v.size(). Entonces, para cada i en {0..n-2}, se cumple que |v[i]-v[i+1]|<=2.
    //      Además, hay exactamente una i en {0..n-2} que cumple |v[i]-v[i+1]|=1.
    // Post: La función devuelve ese i en {0..n-2} que cumple |v[i]-v[i+1]|=1.
    int positionDistance1(const vector<int> &v);

Observación

Sólo tenéis que enviar el procedimiento requerido; el programa principal
será ignorado.

Observación

Evaluación sobre 10 puntos:

- Solución lenta: 5 puntos.

- Solución rápida: 10 puntos.

Entendemos por solución rápida una que es correcta, de coste logarítmico
y capaz de superar los juegos de pruebas públicos y privados. Entendemos
una solución lenta una que no es rápida, pero es correcta y capaz de
superar los juegos de pruebas públicos.

Información del problema

Autoría: PRO1

Generación: 2026-01-25T23:01:32.989Z

© Jutge.org, 2006–2026.
https://jutge.org
