Las pesas en mi gimnasio se ven así:
=========[]-----------------------[]=========
Pueden contener platos de cinco tamaños diferentes, 2.5 libras, cinco libras, diez libras, 25 libras y 45 libras:
.
. ! |
. ! | | |
| | | | |
' ! | | |
' ! |
'
Por seguridad, también agregamos un clip ]o [en el exterior de todos nuestros platos si los hay. La barra en sí pesa 45 libras. Siempre colocamos las placas más pesadas más cercanas al centro, sin espacios entre las placas, y colocamos placas idénticas en ambos lados. También siempre usamos el mínimo número de platos posible, por ejemplo, nunca usamos dos platos de cinco libras en un lado en lugar de un solo plato de diez libras. Entonces, si quiero levantar 215 libras, mi barra se ve así:
. .
.!| |!.
!||| |||!
====]||||[]-----------------------[]||||[====
!||| |||!
'!| |!'
' '
Su código, una función o programa completo, debe tomar un número entero de 45 a 575, siempre un múltiplo de 5, y generar la barra que se suma a ese peso. Por ejemplo:
Entrada: 45
Salida (tenga en cuenta que no hay clips en una barra vacía):
=========[]-----------------------[]=========
Entrada: 100
Salida:
! !
.| |.
======]||[]-----------------------[]||[======
'| |'
! !
Entrada: 575
Salida:
..... .....
.!||||| |||||!.
!||||||| |||||||!
]||||||||[]-----------------------[]||||||||[
!||||||| |||||||!
'!||||| |||||!'
''''' '''''
Puede tener espacios finales en cada línea o no, pero su salida no puede tener líneas vacías iniciales o finales (la salida para 45 debería ser una línea, para 50 debería ser tres líneas, para 65 debería ser cinco líneas, y así sucesivamente).
Este es el código de golf, ¡el código más corto gana!
print?