Las Vegas P61999


Statement
 

pdf   zip

Tu coche te ha dejado tirado en Las Vegas. Para poder seguir viajando necesitas comprarte un coche de segunda mano, pero los kk dólares que tienes no te alcanzan para pagar los 1000$ que te piden por él. Viendo tu situación, el vendedor se ofrece a apostar contra ti exactamente rr rondas de cara o cruz. En cada ronda, tú eliges una cantidad tt de dólares para apostar, entre 00 y el total de dólares que tengas en ese instante. Si pierdes (hay un 50%50\% de posibilidades) el vendedor se queda con la cantidad tt que habías apostado; si ganas, recuperas el doble de lo apostado (los tt dólares apostados, más tt dólares adicionales).

Sabiendo que tu objetivo final es conseguir los 1000$ para comprar el coche, se te pide que encuentres qué cantidad de dinero deberías apostar en cada tirada para tener la máxima probabilidad de conseguirlo.

Entrada

Cada entrada esta formada por una cantidad arbitraria de situaciones, no mayor de 20000. Cada situación se da en una línea con dos números separados por un espacio: la cantidad de dólares 0k10000\le k\le 1000 que tienes en ese instance, y el número de rondas 1r101\le r\le 10 que tienes por delante. Dispones de un segundo de CPU para resolver cada entrada.

Salida

Para cada situación, escribe una línea con dos números: la cantidad tt de dólares que deberías apostar, y la probabilidad que tienes de conseguir el coche si juegas las rr apuestas del mejor modo posible, en forma de fracción irreductible. En caso que varias cantidades tt dieran idénticas probabilidades, escribe la menor.

Observación

Siempre hay que jugar las rr rondas, aunque ya hayas conseguido los 10001000 dólares. Esto no representa ningún problema, porque puedes elegir apostar 00 dólares. Del mismo modo, si no tienes ninguna posibilidad de alcanzar los 10001000 dólares, deberías apostar también 00, ya que es la menor apuesta dentro de todas las posibles. Estudia los ejemplos dados para asegurarte que entiendes correctamente el enunciado del problema.

Puntuación

  • Test1:   Entradas donde todos los casos son r=1r=1.

  • Test2:   Entradas donde todos los casos son r=1,2r=1, 2.

  • Test3:   Entradas donde 1r101\le r\le 10.

Public test cases
  • Input

    0 1
    300 1
    499 1
    500 1
    501 1
    650 1
    998 1
    999 1
    1000 1
    

    Output

    0 0/1
    0 0/1
    0 0/1
    500 1/2
    499 1/2
    350 1/2
    2 1/2
    1 1/2
    0 1/1
    
  • Input

    249 2
    250 2
    251 2
    487 2
    645 2
    739 2
    800 2
    999 2
    1000 2
    

    Output

    0 0/1
    250 1/4
    249 1/4
    13 1/4
    0 1/2
    0 1/2
    200 3/4
    1 3/4
    0 1/1
    
  • Input

    500 3
    700 3
    835 3
    128 3
    295 7
    941 9
    485 6
    182 10
    901 8
    

    Output

    0 1/2
    50 5/8
    0 3/4
    122 1/8
    2 37/128
    1 481/512
    15 31/64
    0 93/512
    0 115/128
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++