Buduję gigantycznego robota Lego i muszę wygenerować określone przełożenia przy użyciu zestawu kół zębatych. Mam wiele kół zębatych ze zwykłymi rozmiarami kół LEGO: 8, 16, 24 lub 40 zębów. Napisz program, którego mogę użyć, w którym wprowadzę przełożenie, a program powie mi, jakiej kombinacji biegów powinienem użyć, aby uzyskać żądany przełożenie.
Współczynnik wejściowy zostanie określony na standardowym wejściu (lub w twoim języku) za pomocą dwóch liczb całkowitych oddzielonych dwukropkiem. Stosunek a:b
oznacza, że wał wyjściowy powinien obracać się a/b
tak szybko, jak wał wejściowy.
Dane wyjściowe na standardowe dane wyjściowe powinny być pojedynczą linią zawierającą rozdzieloną spacjami listę przełożeń przekładni, w postaci x:y
gdzie x
jest wielkość koła zębatego na wale wejściowym i y
wielkość koła zębatego na wale wyjściowym. Musisz użyć minimalnej możliwej liczby biegów dla danego przełożenia. Każdy x
i y
musi być jednym z 8,16,24,40
.
przykłady:
1:5 -> 8:40
10:1 -> 40:8 16:8
9:4 -> 24:16 24:16
7:1 -> IMPOSSIBLE
7:7 ->
6:15 -> 16:40
Jeśli żądane przełożenie jest niemożliwe, wydrukuj „NIEMOŻLIWE”. Jeśli nie są wymagane żadne koła zębate, wydrukuj pusty ciąg.
To jest golf golfowy, wygrywa najkrótsza odpowiedź.
1:5 -> 8:40
i 10:1 -> 40:8
ma sens, ale inni nie tak bardzo.
1:5
oznacza, że wał wyjściowy obraca się 5-krotnie wolniej, a koło zębate 8 zębów na wejściu i koło zębate 40 zębów na wyjściu sprawia, że tak się dzieje.
10:1 -> 40:8 16:8
, nie to, co powiedziałeś. A co z innymi, mylisz się? 9:4
jest realizowane 3:2
dwukrotnie. 3:2
jest implementowany za pomocą 24:16
.
7:7
jest taki sam jak 1:1
, więc nie wymaga żadnych narzędzi do wdrożenia.