(Надеюсь, это еще День благодарения для вас)
У тебя есть индейка на ужин в День благодарения, но ты не знаешь, как ее равномерно распределить. Проблема в том, что некоторые люди едят больше, чем другие, поэтому вам нужно найти решение
вход
Там будет два входа. Первым будет ascii art разных людей.
o
o \|/
\|/ |
| |
/ \ / \
спецификации ascii-art
Каждый человек занимает 3 колонки шириной. Каждый человек отделен одним столбцом пробелов. Самая вершина каждого человека - это o
. Ниже o
, смещение на 1
и -1
в x, и \
и /
, соответственно. От o
второго до последнего ряда во входных данных |
количество их на человека является их «ростом». Единственные данные, которые вам нужно будет извлечь из каждого человека, это их «рост».
Всегда будет хотя бы один человек. У каждого человека всегда есть как минимум 2 роста. Максимальная высота, которую должна обработать ваша программа, - это высота не менее 64.
Если вы хотите, чтобы ввод, дополненный пробелами, образовывал прямоугольник, укажите это в своем ответе.
Второй вход - индейка. Индейка на самом деле не индейка, больше NxM
размеров индейки. Если второй ввод 3x2
, то индейка имеет размеры 3 * 2, с общей площадью 6.
Вывод
Вывод может быть списком или ближайшей альтернативой вашего языка (например, Array). Вы также можете вывести строку со значениями, разделенными пробелами.
Значения для каждого человека должны быть выведены в том порядке, в котором они были введены.
Вызов
Ваша цель состоит в том, чтобы разделить область индейки среди людей.
Пример сценария:
Предположим, что они два человека, с высотой 3
и 6
, соответственно. Если есть индейка 5x3
. Общая площадь индейки, которую нужно будет распределить, равна 15
.
Теперь, как бы вы распределили его среди всех? Вот как:
the_persons_height
TurkeyForAPerson = -------------------- * turkey_area
sum_of_all_heights
Это означает, что для первого человека с ростом 3
они получат 3/9*15
индейку, или 5
, для второго человека с ростом 6
они получат 6/9*15
или 10
индейку.
Вывод
Вывод должен состоять исключительно из цифр, и .
, если вы не решите пойти на бонус. В этом случае он может состоять только из цифр, пробелов ( ) и косой черты (
/
).
Полный пример
Входные данные:
6x5
o
|
o \|/
\|/ |
| |
| |
/ \ / \
Вывод:
11.25 18.75
Бонусы
Бонус -20%: вы выводите дробь (должна быть упрощена), не имеет значения, смешанная или неправильная дробь.
счет
Это код-гольф, поэтому выигрывает самый короткий код в байтах!