Sztanga na mojej siłowni wyglądają następująco:
=========[]-----------------------[]=========
Mogą pomieścić płytki o pięciu różnych rozmiarach: 2,5 funta, pięciu funtów, dziesięć funtów, 25 funtów i 45 funtów:
.
. ! |
. ! | | |
| | | | |
' ! | | |
' ! |
'
Dla bezpieczeństwa dodajemy również klips ]
lub [
na zewnątrz wszystkich naszych talerzy, jeśli takie istnieją. Sam pasek waży 45 funtów. Zawsze umieszczamy najcięższe płyty najbliżej środka, bez przerw między płytami, i umieszczamy identyczne płyty po obu stronach. Zawsze używamy również minimalnej możliwej liczby płyt, np. Nigdy nie używamy dwóch pięciofuntowych płyt po jednej stronie zamiast jednej dziesięciofuntowej płyty. Więc jeśli chcę podnieść 215 funtów, mój pasek wygląda następująco:
. .
.!| |!.
!||| |||!
====]||||[]-----------------------[]||||[====
!||| |||!
'!| |!'
' '
Twój kod, funkcja lub pełny program, musi przyjmować liczbę całkowitą od 45 do 575, zawsze wielokrotność 5, i generować pasek, który sumuje się do tej wagi. Na przykład:
Wejście: 45
Wyjście (zauważ, że na pustym pasku nie ma klipów):
=========[]-----------------------[]=========
Wejście: 100
Wynik:
! !
.| |.
======]||[]-----------------------[]||[======
'| |'
! !
Wejście: 575
Wynik:
..... .....
.!||||| |||||!.
!||||||| |||||||!
]||||||||[]-----------------------[]||||||||[
!||||||| |||||||!
'!||||| |||||!'
''''' '''''
Możesz mieć końcowe spacje w każdej linii lub nie, ale twój wynik nie może mieć wiodących ani końcowych pustych linii (wynik dla 45 powinien być jednym wierszem, dla 50 powinien być trzema wierszami, dla 65 powinien być pięcioma wierszami itd.)
To jest golf golfowy, wygrywa najkrótszy kod!
print
?Odpowiedzi:
Pyth, 126 bajtów
Kod źródłowy zawiera znaki niedrukowalne, więc tutaj jest to zrzut XXD:
Ten kod jest bardzo wolny , do tego stopnia, że nie jest używany. Możesz go przyspieszyć około 1000 razy, dodając pomiędzy nimi wywołanie
.{
(set
), zachowując jednocześnie funkcjonalny kod. Oto przyjazna dla kopiowania wersja wynikowego kodu:źródło
Python 2, 295 bajtów
Buduje pasek w pionie, a następnie obraca i drukuje niepuste linie.
źródło
-v-1
jest głównym kandydatem do bitowej negacji;~v
.Węgiel drzewny , 65 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wydrukuj 12
-
s,[]
i 9=
s. Obejmuje to połowę paska. Kursor pozostawia się na początku=
s.Odejmij 45 od wartości wejściowej, aby uwzględnić ciężar paska.
Filtruj listę możliwych wag par wag dla tych, które nie są większe niż dane wejściowe, i powtarzaj, gdy lista nie jest pusta.
Podziel sznurek
|||.,|.,|!,||.,||!
na przecinki i wybierz kawałek odpowiadający największej możliwej masie, i wydrukuj go zarówno w górę, jak i w dół. (Alternatywnie można po prostu wydrukować go do góry i odbić w¬
kierunku na końcu; wiele odmian ma tę samą długość.)Wydrukuj klip (zostanie zastąpiony następną wagą, jeśli istnieje).
Odejmij wagę od wartości wejściowej.
Zastanów się, aby ukończyć sztangę.
źródło