К сожалению, Санта не смог вовремя поймать эльфов! Теперь он должен вернуться к изготовлению подарков. Поскольку эльфы определенно не рабы Санты, он должен выяснить, сколько стоит им заплатить.
Вызов
Учитывая некоторую информацию о подарках, определите стоимость изготовления их всех.
Каждый подарок кладется в картонную коробку и оборачивается оберточной бумагой с лентой, обмотанной вокруг него в самом конце. Оберточная бумага волшебна и не требует наложения, поэтому количество используемой оберточной бумаги точно соответствует площади поверхности коробки. Все подарки представляют собой прямоугольные призмы, потому что таким образом Санта может хранить их более компактно. Лента вращается во всех трех направлениях (поэтому длина ленты, используемой для обертывания, равна сумме трех разных периметров).
К счастью, само настоящее имеет известную цену. Картон стоит 1 доллар за квадратный метр, а оберточная бумага - 2 доллара за квадратный метр. (Подсказка: вы можете просто умножить площадь поверхности на 3: P). Лента стоит 1 доллар за метр.
Спецификации формата
Входные данные будут представлены в виде списка подарков, где каждый подарок содержит стоимость самого предмета и три измерения данного бокса. Ваш результат должен быть общей требуемой стоимостью.
Чтобы быть точным, то формула для стоимости одного настоящее со стоимостью элемента c
и размеров x
, y
и z
это c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
.
Тестовые случаи
[[7, 8, 6, 7], [7, 7, 5, 5], [8, 9, 6, 7], [6, 5, 10, 10], [5, 9, 6, 7], [9, 9, 10, 6], [8, 10, 10, 6], [6, 5, 7, 9], [7, 10, 8, 8], [5, 9, 9, 10]] -> 11866
[[5, 10, 8, 9], [8, 8, 5, 8], [8, 7, 7, 6], [5, 9, 9, 10], [9, 7, 5, 8], [9, 8, 9, 5], [7, 5, 6, 7], [5, 7, 6, 10]] -> 8854
[[9, 8, 8, 8], [10, 9, 8, 5], [10, 7, 5, 5], [10, 10, 6, 6], [8, 5, 8, 7]] -> 4853
[[7, 7, 8, 10], [8, 10, 7, 8], [9, 7, 7, 8], [8, 5, 10, 5], [6, 6, 6, 8], [8, 9, 7, 5], [8, 5, 6, 5], [7, 9, 8, 5], [10, 10, 10, 8]] -> 9717
[[5, 8, 9, 7], [5, 8, 7, 10], [5, 7, 7, 6], [5, 5, 5, 6], [9, 9, 5, 7], [5, 6, 7, 8], [8, 5, 8, 7], [6, 9, 5, 5], [10, 10, 9, 10]] -> 9418
[[9, 9, 7, 10], [5, 8, 7, 9], [5, 5, 9, 8], [10, 5, 9, 10], [8, 5, 10, 7], [8, 9, 5, 5], [5, 10, 6, 10]] -> 8178
[[5, 9, 5, 8], [7, 8, 10, 6], [7, 10, 7, 10], [8, 9, 7, 5], [5, 7, 8, 6], [9, 9, 6, 10], [6, 5, 9, 9], [7, 9, 9, 9]] -> 9766
[[7, 10, 5, 10], [8, 10, 8, 9], [8, 6, 7, 8], [6, 9, 8, 5], [6, 7, 10, 9], [7, 6, 5, 8]] -> 7118
[[10, 6, 7, 5], [5, 9, 5, 9], [9, 7, 8, 5], [6, 6, 9, 9], [9, 9, 6, 9], [10, 5, 8, 9], [7, 5, 6, 10], [9, 10, 5, 5]] -> 8007
[[8, 10, 7, 8], [9, 10, 5, 8], [6, 7, 5, 6], [10, 10, 9, 8], [7, 5, 8, 9], [10, 10, 6, 7], [10, 8, 9, 10], [5, 10, 5, 5]] -> 9331
правила
- Применяются стандартные лазейки
- Ввод и вывод может быть дан и представлен в любом разумном формате
- Вы должны принять входные данные в виде списка подарков, а не 4 списков атрибутов.
- Это Код-гольфпоэтому выигрывает самый короткий ответ в байтах
- Ответы не принимаются
Надеюсь, этот вызов проще, чем предыдущие: P
Примечание: я черпал вдохновение для этой серии испытаний из Advent Of Code . У меня нет связи с этим сайтом
Вы можете увидеть список всех испытаний в серии, посмотрев раздел «Связанные» первой задачи здесь .
источник
c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
Ответы:
JavaScript (ES6), 58 байт
Контрольные примеры
Показать фрагмент кода
Как?
Единственный прием, используемый здесь, это разложить на множители (xy + xz) как x (y + z) и повторно использовать сумму (y + z) в последней части формулы.
источник
Mathematica, 34 байта
-10 байт от @alephalpha
Попробуйте онлайн!
источник
Tr[#+6#2(+##3)+6##3+4(+##2)&@@@#]&
Желе , 25 байт
Попробуйте онлайн!
источник
Python 3 , 56 байт
Попробуйте онлайн!
источник
C (gcc) ,
1041009993 байтачетырепятьодиннадцать байтов благодаря PrincePolka .Попробуйте онлайн!
Принимает список присутствующих атрибутов (длина списка делится на четыре) и целое число, указывающее количество подарков. Возвращает стоимость изготовления всех подарков.
источник
j=t=0
должна оставаться. Я не мог понять, как изменить порядок вычисления, чтобы сохранить байт; было бы полезно, если бы вы связались с полной версией кода с вашим реализованным гольфом.05AB1E , 17 байт
Попробуйте онлайн!
объяснение
источник
Pyth , 39 байт
Попробуйте онлайн!
Принимает ввод как строковое представление вложенного списка и суммирует по формуле стоимости.
источник
Чистый , 64 байта
Попробуйте онлайн!
источник
Excel, 60 байт
Ввод взят из столбцов
A
вD
, новая строка в подарок. Формула в любом другом столбце.источник
))