Квадрат від цифр з найбільшою сумою


9

Ви повинні написати програму або функцію, яка отримує список цифр як вхід і вихід або повертає найбільшу суму, досяжну, поставивши ці цифри у квадрат.

Введення завжди буде містити квадратну кількість цифр. Приклад квадратного розташування для введення 9 1 2 3 4 5 6 7 7може бути

677
943
125

Сума обчислюється як сума всіх рядків і стовпців. За вищезазначеною домовленістю сума була б 677 + 943 + 125 + 691 + 742 + 735 = 3913. Зауважте, що це не максимальна сума, тому це не очікуваний результат.

Вхідні дані

  • Список довжиною n^2( n>=1), що містить ненульові цифри ( 1-9).

Вихідні дані

  • Ціле число, найбільша сума, яку можна досягти за допомогою вхідних цифр, розміщених у квадраті.

Приклади

Приклад формату є input => output.

5 => 10

1 2 3 4 => 137

5 8 6 8 => 324

9 1 2 3 4 5 6 7 7 => 4588

2 4 9 7 3 4 2 1 3 => 3823

8 2 9 4 8 1 9 3 4 6 3 8 1 5 7 1 => 68423

5 4 3 6 9 2 6 8 8 1 6 8 5 2 8 4 2 4 5 7 3 7 6 6 7 => 836445

Це кодовий гольф, тому найкоротший запис виграє.


Просто для подвійної перевірки, чи вхід повинен бути точно розділеним пробілом цифр, або це однозначний формат списку?
Sp3000

@ Sp3000 Будь-який простий однозначний формат списку добре, включаючи формат списку обраної вами мови.
randomra

Відповіді:


4

Піт, 15 байт

s*VSsM^^LTUQ2SQ

Демонстрація. Тестовий джгут.

Примітка. Введіть будь-який формат послідовності python, такий як a,b,c,або [a, b, c]. Не вдається a.

Це буде поясненням прикладу введення 5,8,6,8.

^LTUQ: Це перелік повноважень 10, що дорівнює тривалості Q. [1, 10, 100, 1000].

^ ... 2: Тоді ми візьмемо пару повноважень 10. [[1, 1], [1, 10], ....

sM: Потім ми підсумовуємо ці пари. [2, 11, 101, ...Кожне число повторює значення розташування сітки. Значення нижнього правого кута дорівнює 2, тому що цифра, розміщена там, знаходиться в тому місці, де є два числа. Зверніть увагу, що було створено 16 значень, хоча нам потрібно лише 4. Це буде вирішено незабаром.

S: Сортуйте значення у порядку збільшення. [2, 11, 11, 20, 101, .... Зауважте, що єдині значення, що мають значення для цього введення, - це перші 4, оскільки цей квадрат не матиме сотень чи тисяч місць.

SQ: Сортуйте вхід у порядку зростання. [5, 6, 8, 8]

*V: Векторне множення на два списки. Векторизоване множення Pyth скорочує довший вхід, тому це виконує [5*2, 6*11, 8*11, 8*20], еквівалентно заповненню сітки, найменшої до найбільшої, праворуч знизу вліво.

s: Підсумовують результати 324. Друк неявний.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.