Be the brick my friend P34699


Statement
 

pdf   zip

html

Recientemente, Trivette provó el método de Walker de permitir que un delincuente a quien apunta con la pistola le desarme con una patada, con el fin de darle una buena paliza. Por desgracia, ese maleante era el mismísimo Bestiajez, el cual no es precísamente un enclenque. El pobre Trivette recibió un saco de llaves, patadas y puñetazos de regalo.

Tras unos dias de recuperación, Trivette habla con Walker y le cuenta que quiere mejorar en artes marciales para que esto no le vuelva a ocurrir. Por suerte, Walker es el mejor del mundo en artes marciales. De hecho, el mejor del universo. Walker le cuenta que la clave es dominar el equilibrio. Para que Trivette empiece a dominar este concepto, le pone el siguiente problema. Dado un cierto número de ladrillos, ¿cuán lejos se puede llegar poniendo los unos encima de los otros y preservando el equilibrio?

Para ser más preciso, contamos con N ladrillos de dimensiones 1× 0.3 (es decir, 1 de ancho por 0.3 de alto). El suelo es el eje de las x, y el eje de las y representa la altura. Ponemos el primer ladrillo sobre el suelo, ocupando la posición x=0 hasta la posición x=1. Luego, ponemos el segundo ladrillo encima del primero. Para preservar el equilibrio, debemos asegurar que el centro de gravedad horizontal del segundo ladrillo está entre los dos extremos del primer ladrillo. A continuación ponemos el tercer ladrillo sobre el segundo. Para preservar el equilibrio, debemos asegurar que el centro de gravedad horizontal del tercer ladrillo queda entre los dos extremos del segundo ladrillo, y que el centro de gravedad conjunto del segundo y tercer ladrillo está entre los dos extremos del primer ladrillo. Y así sucesivamente, podemos ir poniendo el resto de ladrillos.

El objetivo es poner los ladrillos de forma equilibrada de modo que el de arriba de todo quede lo más a la derecha posible. La siguiente figura muestra la solución para 1, 2, 3 y 4 ladrillos. Las flechas representan los centros de gravedad de los ladrillos o combinaciones de ladrillos que es necesario vigilar para asegurar que hay equilibrio.

unit=2cm

(1.2,1.2) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0,0)(1,0.3) (1.7,1.2) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0,0)(1,0.3) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.5,0.3)(1.5,0.6) ->(1.0,0.45)(1.0,0.15) (1.95,1.2) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0,0)(1,0.3) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.25,0.3)(1.25,0.6) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.75,0.6)(1.75,0.9) ->(1.25,0.75)(1.25,0.45) [linewidth=1.5pt]->(1.0,0.6)(1.0,0.0) (2.1,1.2) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0,0)(1,0.3) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.1666,0.3)(1.1666,0.6) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.4165,0.6)(1.4165,0.9) [linewidth=0.5pt,fillcolor=lightgray,fillstyle=solid](0.9165,0.9)(1.9165,1.2) ->(1.4165,1.05)(1.4165,0.75) [linewidth=1.5pt]->(1.1665,0.90)(1.1665,0.30) [linewidth=2pt]->(1,0.75)(1,-0.15)

Walker termina su explicación sentenciando: “Trivette, don’t try to control the brick, just be the brick my friend”.

Entrada

La entrada tiene como mucho 100 líneas. Cada línea tiene un entero N entre 1 y 500, el número de ladrillos que Trivette tiene que colocar.

Salida

Para cada N escribe el resultado en una línea, que es la coordenada x de más a la derecha del ladrillo que queda más a la derecha (supuestamente el de arriba de todo). Escribe la salida con 4 cifras decimales.

Public test cases
  • Input

    1
    2
    3
    4
    93
    

    Output

    1.0000
    1.5000
    1.7500
    1.9167
    3.5522
    
  • Information
    Author
    Guillem Godoy
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++