En aquest exercici direm que a la posició d’un vector tenim una rampa quan els elements , i estan ordenats en ordre estrictament creixent o decreixent.
Per exemple, si , i tenim rampes a les posicions 1, 2 i 4. Quan no tenim cap posició amb rampa.
Dues posicions amb rampa, i amb , 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 amb corresponents a parells de posicions amb rampa i potencialment conflictives.
El vostre programa ha de definir, implementar i utilitzar els procediments:
vector <bool> pos_rampas (const vector <int>& V);
que donat un vector d’enters retorna un vector, amb la mateixa dimensió, de valors booleans, on la posició conté el valor true si i només si el vector té una rampa a la posició .
int pot_conflictives (const vector <bool>& B) ;
que donat un vector indicant les posicions on hi ha una rampa determini el nombre de parells de posicions , , amb rampes i potencialment conflictives.
L’entrada està formada per una seqüència no buida de casos. Cada cas està descrit per un enter seguit dels valors enters del vector corresponent.
Indicar per a cada cas les posicions en les que tenim rampes i el nombre de parells de posicions , amb 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 ---