Las Vegas P61999


Statement
 

pdf   zip

html

Tu coche te ha dejado tirado en Las Vegas. Para poder seguir viajando necesitas comprarte un coche de segunda mano, pero los k 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 r rondas de cara o cruz. En cada ronda, tú eliges una cantidad t de dólares para apostar, entre 0 y el total de dólares que tengas en ese instante. Si pierdes (hay un 50% de posibilidades) el vendedor se queda con la cantidad t que habías apostado; si ganas, recuperas el doble de lo apostado (los t dólares apostados, más t 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 0≤ k≤ 1000 que tienes en ese instance, y el número de rondas 1≤ r≤ 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 t de dólares que deberías apostar, y la probabilidad que tienes de conseguir el coche si juegas las r apuestas del mejor modo posible, en forma de fracción irreductible. En caso que varias cantidades t dieran idénticas probabilidades, escribe la menor.

Observación

Siempre hay que jugar las r rondas, aunque ya hayas conseguido los 1000 dólares. Esto no representa ningún problema, porque puedes elegir apostar 0 dólares. Del mismo modo, si no tienes ninguna posibilidad de alcanzar los 1000 dólares, deberías apostar también 0, 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=1.  5 Puntos 
  • Test2:   Entradas donde todos los casos son r=1, 2.  15 Puntos 
  • Test3:   Entradas donde 1≤ r≤ 10.  80 Puntos 
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++