En aquest exercici direm que a la posició i d’un vector v tenim una rampa quan els elements v[i], v[i + 1] i v[i + 2] estan ordenats en ordre estrictament creixent o decreixent.
Per exemple, si n = 7 , i v = [4,5,4,3, −4,2,4] tenim rampes a les posicions 1, 2 i 4. Quan v = [0,0, 0,0,0,0] no tenim cap posició amb rampa.
Dues posicions amb rampa, i i j amb i <j , són potencialment conflictives si les corresponents rampes involucren alguna posició comuna.
En l’exemple anterior les rampes de les posicions 1 i 2 són potencialment conflictives, la de la posició 2 és potencialment conflictiva amb la de la posició 4. La rampa de la posició 1 no comparteix cap posició amb la de la posició 4 i per això les rampes de les posicions 1 i 4 no són potencialment conflictives.
Escriviu un programa que indiqui les posicions en les que tenim rampes i el nombre de parells (i, j) amb i <j corresponents a parells de posicions amb rampa i potencialment conflictives.
El vostre programa ha de definir, implementar i utilitzar els procediments:
que donat un vector d’enters retorna un vector, amb la mateixa dimensió, de valors booleans, on la posició i conté el valor true si i només si el vector V té una rampa a la posició i.
que donat un vector indicant les posicions on hi ha una rampa determini el nombre de parells de posicions (i, j), i <j, amb rampes i potencialment conflictives.
Entrada L’entrada està formada per una seqüència no buida de casos. Cada cas està descrit per un enter n ≥ 3 seguit dels n valors enters del vector corresponent.
Sortida Indicar per a cada cas les posicions en les que tenim rampes i el nombre de parells de posicions (i,j), amb i <j amb rampes i potencialment conflictives.
Seguiu el format especificat als exemples. El vostre codi ha de seguir les normes d’estil i contenir els comentaris que considereu oportuns. Es valorarà la senzillesa i l’eficiència de les solucions proposades.
Input
6 0 0 0 0 0 0 7 1 2 3 4 3 2 1
Output
posicions amb rampa: potencialment conflictives: 0 --- posicions amb rampa: 0 1 3 4 potencialment conflictives: 3 ---
Input
3 7 8 7 3 7 8 9 3 8 7 6
Output
posicions amb rampa: potencialment conflictives: 0 --- posicions amb rampa: 0 potencialment conflictives: 0 --- posicions amb rampa: 0 potencialment conflictives: 0 ---
Input
8 9 8 7 6 5 4 3 2 9 0 1 2 1 0 1 2 1 0
Output
posicions amb rampa: 0 1 2 3 4 5 potencialment conflictives: 9 --- posicions amb rampa: 0 2 4 6 potencialment conflictives: 3 ---
Input
6 1 2 3 4 5 6 7 100 90 80 90 100 90 80
Output
posicions amb rampa: 0 1 2 3 potencialment conflictives: 5 --- posicions amb rampa: 0 2 4 potencialment conflictives: 2 ---
Input
6 0 1 0 1 0 1
Output
posicions amb rampa: potencialment conflictives: 0 ---