Donada una seqüència de nombres reals positius , , …, , considerem les expressions aritmètiques que es poden formar amb sumes i productes usant tots aquests nombres (potser afegint parèntesis) sense canviar-ne l’ordre relatiu.
Per exemple, si i la seqüència és , aleshores algunes d’aquestes expressions són (ometem els parèntesis quan és possible per llegibilitat):
0.5
0.5
El nostre objectiu és calcular el nombre més gran que es pot obtenir avaluant aquestes expressions. Per exemple, si la seqüència és , aquest nombre és i s’obté amb l’expressió . Si en canvi la seqüència és , aleshores el màxim és i s’obté amb .
L’entrada consisteix en diversos casos. Cada cas comença amb , seguit de , , …, . Podeu assumir que i que .
Per cada cas, escriviu amb quatre dígits decimals el nombre més gran que es pot obtenir avaluant les expressions que es poden formar amb sumes i productes i tots els nombres , , …, sense canviar-ne l’ordre relatiu.
Resoleu aquest problema amb programació dinàmica.
Per escriure un double amb quatre dígits decimals podeu
fer-ho així:
int main() {
cout.setf(ios::fixed);
cout.precision(4);
double x;
...
cout << x << endl;
Autoria: Enric Rodríguez
Generació: 2026-01-25T17:21:29.023Z
© Jutge.org, 2006–2026.
https://jutge.org