Cursa de cavalls

Una cursa de cavalls registra els temps dels participants i les apostes
del públic. Donades les dades dels cavalls i una seqüència d’apostes, el
programa ha de calcular el que rep cada apostador que hagi apostat al
cavall guanyador, seguint el sistema totalitzador.

Sistema totalitzador

Es suma el total de diners apostats a tots els cavalls formant el pot
total P. L’organitzador reté una comissió c sobre el pot total. El pot
restant es reparteix entre els apostadors del cavall guanyador
proporcionalment a la quantitat apostada per cadascú. Un apostador que
ha apostat a euros al guanyador rep:

$$\text{import rebut} = \frac{a}{A} \times (1 - c) \times P$$

on A és la suma total apostada al cavall guanyador i P és el pot total.

Exemple

Entrada

    4
    1 Llampec 94
    2 Tornado 87
    3 Mestral 91
    4 Ponent 99
    Arnau Tornado 50
    Berta Llampec 30
    Carles Tornado 20
    Diana Mestral 10
    # # 0
    0.20

Sortida

    Guanyador: Tornado (87s)
    Organitzacio: 22.00
    Pot a repartir: 88.00
    Arnau: 62.86
    Carles: 25.14

Explicació

El pot total és P = 50 + 30 + 20 + 10 = 110 €.

La comissió és c = 0, 20, de manera que l’organització s’emporta
0, 20 × 110 = 22, 00 € i el pot a repartir és 0, 80 × 110 = 88, 00 €.

El cavall guanyador és Tornado (87 s).

La suma apostada a Tornado és A = 50 + 20 = 70 €. Arnau rep
$\frac{50}{70} \times 88 \approx 62{,}86$ € i Carles rep
$\frac{20}{70} \times 88 \approx 25{,}14$ €.

Observació

Per imprimir un nombre real amb exactament dos decimals podeu usar
cout << fixed << setprecision(2) << valor, on fixed i setprecision estan
disponibles amb #include <iomanip>. Un cop activat, tots els reals
posteriors s’imprimiran amb dos decimals.

Entrada

- Un enter n ≥ 3: el nombre de cavalls participants.

- n línies, cadascuna amb tres camps: dorsal nom temps_en_segons (enter,
  string, enter), ordenades per dorsal creixent.

- Una seqüència d’apostes, cadascuna amb tres camps:
  nom_apostador nom_cavall quantitat (string, string, enter positiu). La
  seqüència acaba amb la línia # # 0.

- Un real c amb 0 < c < 1: la comissió de l’organitzador.

Es garanteix que tots els noms de cavall que apareixen a les apostes
corresponen a un cavall existent, que no hi ha dorsals repetits i que
tots els noms d’apostador són únics.

Sortida

- El nom del cavall guanyador (menor temps) i el seu temps en segons. En
  cas d’empat de temps, guanya el cavall amb el dorsal menor.

- Els diners que s’emporta l’organització, arrodonits a dos decimals.

- El pot a repartir entre els apostadors guanyadors, arrodonit a dos
  decimals.

- Per a cada apostador que hagi apostat al cavall guanyador, el total
  que rep, arrodonit a dos decimals. La llista s’imprimeix en el mateix
  ordre en què han aparegut les apostes a l’entrada. Si cap apostador ha
  apostat al cavall guanyador, no s’imprimeix cap apostador.

Per obtenir més detalls sobre la sortida consulta els jocs de proves
públics.

Informació del problema

Autoria: Bernardino Casas

Generació: 2026-06-18T03:30:42.311Z

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