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);
Sólo tenéis que enviar el procedimiento requerido; el programa principal será ignorado.
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.
Autoría: PRO1
Generación: 2026-01-25T23:01:32.989Z
© Jutge.org, 2006–2026.
https://jutge.org