Vacances P64430


Statement
 

pdf   zip

Enguany fareu una ruta pels Estats Units, i decidiu emportar-vos 1000$ en metàl·lic. Quan aneu a l’oficina de canvi, trobeu que cada 1$ costa 0.93€. De manera que, en principi, hauríeu de gastar-vos 930€. Però veieu que cada 1$ costa 0.79£, i que cada 1£ costa 1.17€. Astutament se us acut que, si feu servir lliures esterlines com a moneda intermitja, podeu aconseguir un tracte millor que fent el canvi directe d’euros a dòlars: els 1000$ costen 790£, que costen 790×1.17=924.30790 \times 1.17 = 924.30€, i així aconseguiu un modest estalvi de 5.70€.

Feu un programa que us ajudi a estalviar-vos diners.

Entrada

L’entrada consisteix en diversos casos. Cada cas comença amb el nombre de monedes nn de l’oficina de canvi. A continuació ve una matriu n×nn \times n amb uns a la diagonal, on el coeficient mij>0m_{ij} > 0 a la fila ii i columna jj és un real que representa el cost de 11 unitat de la moneda ii en la moneda jj. A continuació ve el nombre de preguntes q>0q > 0. Finalment vénen qq preguntes, cadascuna consistent en dos enters ii i jj (diferents, ambdós entre 0 i n1n-1), i un nombre real x>0x > 0, el nombre d’unitats de la moneda ii que voleu comprar amb la moneda jj.

Suposeu 2n802 \le n \le 80 i que, per als jocs de proves grossos, q=Θ(n3)q = \Theta(n^3). També podeu assumir que, per a tot cicle que comença i acaba en la moneda ii, el cost de convertir 1 unitat de la moneda ii en moneda ii seguint el cicle és almenys de 1 unitat de la moneda ii (altrament, l’oficina de canvi ja hauria tancat per fallida).

Sortida

Per a cada pregunta consistent en xx, ii, jj, escriviu el cost mínim de comprar xx unitats de la moneda ii en la moneda jj, amb dues xifres decimals. Per fer-ho, poseu aquestes dues línies al principi del vostre main:

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

Escriviu una línia amb 10 guions després de cada cas. Els jocs de proves no tenen problemes de precisió.

Public test cases
  • Input

    3
    1.00 0.79 0.93
    1.29 1.00 1.17
    1.10 0.88 1.00
    6
    0 2 1000.00
    2 0   10.00
    2 1  100.00
    2 1   10.00
    2 1    1.00
    1 0  100.00
    
    3
    1.00 0.79 0.94
    1.27 1.00 1.19
    1.07 0.84 1.00
    1
    0 2 1000.00
    

    Output

    924.30
    11.00
    86.90
    8.69
    0.87
    128.70
    ----------
    939.62
    ----------
    
  • Information
    Author
    Enric Rodriguez
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++