Rampas

En este ejercicio diremos que en la posción ii de un vector vv tenemos una rampa cuando los elementos v[i]v[i], v[i+1]v[i+1] y v[i+2]v[i+2] están ordenados en orden estrictamente creciente o decreciente.

Por ejemplo, si n=7n=7 y v=[4,5,4,3,4,2,4]v=[4,5,4,3,-4,2,4] tenemos rampas en las posiciones 1, 2 y 4. Cuando v=[0,0,0,0,0,0]v=[0,0,0,0,0,0] no tenemos ninguna posición con rampa.

Dos posiciones con rampa, ii y jj con i<ji<j, son potencialmente conflictivas si las correspondientes rampas involucran alguna posición común.

En el ejemplo anterior las rampas de las posiciones 1 y 2 son potencialmente conflictivas, la de la posición 2 es potencialmente conflictiva con la de la posición 4. La rampa de la posición 1 no comparte ninguna posición con la de la posición 4 y por ello las rampas de las posiciones 1 y 4 no son potencialmente conflictivas.

Escribid un programa que indique las posiciones en las que tenemos rampas y el número de pares (i,j)(i,j) con i<ji<j correspondientes a pares de posiciones con rampa y potencialmente conflictivas.

Vuestro programa tiene que definir, implementar y usar los siguientes procedimientos:

vector<bool> pos_rampas (const vector <int>& V);

que dado un vector de enteros devuelve un vector, con la misma dimensión, de valores booleanos, donde la posición ii contiene el valor true si, y solo si, el vector VV tiene una rampa en la posición ii.

int pot_conflictivas (const vector <bool>& B);

que dado un vector indicando las posiciones donde hay una rampa determine el número de pares de posiciones (i,j)(i,j), i<ji < j, con rampas y potencialmente conflictivas.

Entrada

La entrada está formada por una secuencia no vacía de casos. Cada caso está descrito por un entero n3n\geq 3 seguido de los nn valores enteros del vector correspondiente.

Salida

Indicar para cada caso las posiciones en las que tenemos rampas y el número de pares de posiciones (i,j)(i,j) con i<ji<j con rampas y potencialmente conflictivas.

Seguid el formato especificado en los ejemplos. Vuestro código tiene que seguir las normas de estilo y contener los comentarios que consideréis oportunos. Se valorará la sencillez y la eficiencia de las soluciones propuestas.

Información del problema

Autoría: Unknown
Traducción: Maria Serna

Generación: 2026-01-25T13:26:06.207Z

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