(Mam nadzieję, że nadal jest to dla Ciebie Święto Dziękczynienia)
Dostałeś indyka na obiad z okazji Święta Dziękczynienia, ale nie wiesz, jak go równomiernie rozprowadzić. Problem polega na tym, że niektórzy ludzie jedzą więcej niż inni, więc musisz znaleźć rozwiązanie
Wejście
Będą dwa wejścia. Pierwsza będzie sztuką ascii różnych ludzi.
o
o \|/
\|/ |
| |
/ \ / \
specyfikacje ascii-art
Każda osoba zajmuje szerokość 3 kolumn. Każda osoba jest oddzielona pojedynczą kolumną spacji. Na szczycie każdej osoby jest o. Poniżej o, skompensowane 1i -1w X, są \i /, odpowiednio. Od odrugiego do ostatniego rzędu na wejściu są |to ich „wysokość”. Jedyne dane, które będziesz musiał wydobyć od każdej osoby, to jej „wysokość”.
Zawsze będzie co najmniej jedna osoba. Każda osoba ma zawsze co najmniej 2 wysokości. Maksymalna wysokość, którą powinien obsługiwać program, wynosi co najmniej 64.
Jeśli chcesz, aby dane wejściowe wypełnione spacjami tworzyły prostokąt, podaj to w swojej odpowiedzi.
Drugim wejściem jest indyk. Indyk nie jest tak naprawdę indykiem, a bardziej NxMwymiarami indyka. Jeśli drugim wejściem jest 3x2, to indyk ma wymiary 3 * 2, o łącznej powierzchni 6.
Wynik
Wynikiem może być lista lub najbliższa alternatywa dla twojego języka (np. Array). Możesz również wyprowadzić ciąg znaków, a wartości oddzielone spacjami.
Wartości dla każdej osoby powinny być wyprowadzane w kolejności, w jakiej zostały wprowadzone.
Wyzwanie
Twoim celem jest podzielenie obszaru indyka między ludzi.
Przykładowy scenariusz:
Załóżmy, że są to dwie osoby o wysokościach 3i 6odpowiednio. Jeśli jest indyk z 5x3. Całkowita powierzchnia indyka, która będzie musiała zostać rozdzielona, wynosi 15.
Jak więc podzieliłbyś go między wszystkich? Oto jak:
the_persons_height
TurkeyForAPerson = -------------------- * turkey_area
sum_of_all_heights
Oznacza to, że dla pierwszej osoby, z wysokości 3, będą one uzyskać 3/9*15indyka, lub 5, drugą osobę o wysokości 6dostaną 6/9*15lub 10indyka.
Wynik
Dane wyjściowe muszą składać się wyłącznie z cyfr i ., chyba że zdecydujesz się skorzystać z premii. W takim przypadku może składać się tylko z cyfr, spacji ( ) i ukośnika ( /).
Pełny przykład
Wejście:
6x5
o
|
o \|/
\|/ |
| |
| |
/ \ / \
Wynik:
11.25 18.75
Bonusy
-20% Premia: Wyprowadzasz ułamek (musisz uprościć), nie ma znaczenia, czy jest to ułamek mieszany czy niewłaściwy.
Punktacja
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach!
