F011A. Vectors simpàtics

Un vector de reals és simpàtic si compleix totes les condicions
següents:

El vector conté almenys dos elements.

Tots els elements del vector són diferents.

L’element màxim del vector no es troba a la primera posició.

El màxim-esquerrà d’un vector simpàtic és l’element més gran que es
troba a l’esquerra del màxim. La simpatia d’un vector simpàtic és la
mitjana dels elements que es troben entre el màxim-esquerrà i el màxim
(ambdós inclosos).

Per exemple, el vector ⟨2.5, 13, 1.5, 9, 14.5, 12.9⟩ és simpàtic, el seu
màxim és 14.5 i el seu màxim-esquerrà és 13. La seva simpatia és
(13 + 1.5 + 9 + 14.5)/4 = 9.5.

Feu un programa que llegeixi vectors simpàtics i escrigui la seva
simpatia. Per fer-lo, definiu i utilitzeu una acció

        void calcula_posicions(const vector<double>& v, int& p, int& q);

que, donat un vector simpàtic, deixi al paràmetre de sortida @p@ la
posició del seu màxim, i deixi al paràmetre de sortida @q@ la posició
del seu màxim-esquerrà. Així, per a l’exemple anterior, caldria que @p@
valgués 4 i @q@ valgués 1.

Entrada

L’entrada conté una seqüència de vectors simpàtics. Cada vector comença
amb un natural n ≥ 2, seguit dels seus n elements.

Sortida

Cal escriure la simpatia de cada vector de l’entrada, amb sis dígits
darrera el punt decimal.

Observació

Recordeu que per escriure un real amb exactament @n@ dígits darrera el
punt decimal, cal afegir les dues línies següents al principi del
@main@:

        cout.setf(ios::fixed);
        cout.precision(n);

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T12:19:13.234Z

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