Nombres consecutius a distancia menor o igual a 2, només dos consecutius a distància 1.

En aquest exercici heu d’implementar una funció que rep un vector
d’enters que cumpleix el següent. Qualsevol parella de valors
consecutius d’aquest vector es troben a una distància menor o igual a 2.
Però, a més, només hi ha exactament una parella de valors consecutius
d’aquest vector que es troben a distància exactament 1. Per exemple, la
següent seqüencia de valors cumpleix aquesta condició:

    3 1 1 2 4 2 2 0

La funció ha de retornar la posició (indexant des de 0) del primer
element de la parella consecutiva que es troben a distància 1. Amb
l’exemple anterior com a entrada, la funció ha de retornar 2.

Aquesta és la capçalera:

    // Pre: Sigui n el tamany v.size(). Llavors, per a cada i a {0..n-2}, es compleix |v[i]-v[i+1]|<=2.
    //      A més, només hi ha un i a {0..n-2} que compleixi |v[i]-v[i+1]|=1.
    // Post: La funció retorna el i praticular que compleix |v[i]-v[i+1]|=1.
    int positionDistance1(const vector<int> &v);

Observació

Només cal enviar el procediment demanat; el programa principal serà
ignorat.

Observació

Avaluació sobre 10 punts:

- Solució lenta: 5 punts.

- solució ràpida: 10 punts.

Entenem com a solució ràpida una que és correcta, de cost logarítmic i
capaç de superar els jocs de proves públics i privats. Entenem com a
solució lenta una que no és ràpida, però és correcta i capaç de superar
els jocs de proves públics.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T23:01:37.422Z

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