Враховуючи несортований список унікальних суворопозитивних цілих чисел, мінімально сортуйте їх у 2D матриці. Список входу гарантовано композітнога довжини, що означає , що вихід матриця не обов'язково квадрата, але має розміру n x m
з n,m > 1
.
"Мінімально сортувати" тут означає наступне:
- Сортувати список у порядку зростання.
- Максимально ущільнюйте вихідну матрицю - мінімізуйте суму розмірів матриці (наприклад, для
20
вхідних елементів як вхідних даних потрібна матриця a5x4
або4x5
вихід, а не a2x10
). - Ущільнюйте відсортовані числа якомога далі в лівій верхній частині матриці, починаючи з першого елемента в відсортованому списку.
- Це можна вважати сортуванням списку, а потім нарізанням його по антидіагоналях матриці, починаючи з верхнього лівого.
Приклади:
Для вихідного 1..20
виходу використовується матриця 5x4 або 4x5 наступним чином:
1 2 4 7 11
3 5 8 12 15
6 9 13 16 18
10 14 17 19 20
1 2 4 7
3 5 8 11
6 9 12 15
10 13 16 18
14 17 19 20
Для вихідного [3, 5, 12, 9, 6, 11]
виходу є 2x3 або 3x2 наступним чином
3 5 9
6 11 12
3 5
6 9
11 12
Для введення [14, 20, 200, 33, 12, 1, 7, 99, 58]
, вихід 3x3 наступним чином
1 7 14
12 20 58
33 99 200
Для введення 1..10
вихід повинен бути 2x5 або 5x2 наступним чином
1 2 4 6 8
3 5 7 9 10
1 2
3 4
5 6
7 8
9 10
Для вихідного [5, 9, 33, 65, 12, 7, 80, 42, 48, 30, 11, 57, 69, 92, 91]
виходу є 5x3 або 3x5 наступним чином
5 7 11 33 57
9 12 42 65 80
30 48 69 91 92
5 7 11
9 12 33
30 42 57
48 65 80
69 91 92
Правила
- Можна вважати, що вхід відповідає вхідному цілому типу вашої мови.
- Введення та вихід можуть бути надані будь-яким зручним методом .
- Прийнятна або повна програма, або функція. Якщо функція, ви можете повернути вихід, а не надрукувати його.
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
15
тестовий випадок елемента.