Використовуючи лише друкований ASCII (шістнадцяткові коди від 20 до 7E), запишіть квадратну основну програму N × N без коментарів, яку оточують ще 4 шари , створюючи (N + 8) × (N + 8) квадратну програму (N> 0) . Для N = 3 макет (замінений фактичним кодом) виглядає так:
44444444444
43333333334
43222222234
43211111234
4321CCC1234
4321CCC1234
4321CCC1234
43211111234
43222222234
43333333334
44444444444
- C представляють основну програму 3 × 3.
- 1-ї представляють перший шар, 2-х представляють другий шар і т.д.
Програма завжди займає ряд цілих чисел, розділених простором, таких як 0 -1 31 -1 2 2 2
stdin або подібні (це повинні бути просто прості числа, відсутність лапок чи дужок чи що-небудь). Вихід залежить від того, які частини макета були виконані.
Існує п’ять способів запуску програми (нові рядки включаються в пробіг). Кожен робить щось інше до списку:
Запустити лише основне:
CCC CCC CCC
Це обчислює максимум абсолютних значень елементів вхідного списку та друкує
CORE
новий рядок багато разів. Якщо максимум 0, нічого не виводиться (новий рядок є нормальним).Вихід для
0 -1 31 -1 2 2 2
будеCORE CORE ...
31 раз.
Запустіть ядро шаром 1:
11111 1CCC1 1CCC1 1CCC1 11111
Це виводить середнє значення ( середнє арифметичне ) значень списку до стандартної точності з плаваючою точкою.
- Вихід для
0 -1 31 -1 2 2 2
буде 35/7 =5
(5.0
це нормально).
- Вихід для
Запустіть серцевину шарами 1 і 2:
2222222 2111112 21CCC12 21CCC12 21CCC12 2111112 2222222
Це виводить розділений пробілом список списку входів, перевернутий.
- Вихід для
0 -1 31 -1 2 2 2
буде2 2 2 -1 31 -1 0
.
- Вихід для
Виконайте серцевину шарами 1, 2 і 3 (візерунок повинен бути очевидним).
Це виводить розділений пробілом список відсортованого списку входів.- Вихід для
0 -1 31 -1 2 2 2
буде-1 -1 0 2 2 2 31
.
- Вихід для
Запустіть ядро шарами 1, 2, 3 і 4.
Це виводить розділений пробілом список вхідних даних із видаленими дублікатами, впорядкування не має значення.- Вихід для
0 -1 31 -1 2 2 2
може бути-1 0 2 31
.
- Вихід для
Весь вихід призначений для stdout або подібної альтернативи.
Тільки ці 5 комбінацій компонування мають визначене поведінку.
Примітки
- Не допускаються коментарі в ядрі або шарах або їх комбінаціях. Код, який не відповідає або не робить нічого конструктивного, не вважається коментарем.
- Пам’ятайте, що ядро може мати будь-які (позитивні) N × N розміри, але шари товщиною лише одного символу.
- Ви можете припустити, що на вході немає провідних або кінцевих пробілів і рівно один пробіл між числами. Він завжди буде містити принаймні одне число. (Вихідні списки також повинні бути відформатовані так.)
- Ви можете припустити, що список та обчислення, необхідні для виводу, не матимуть значень, які переповнюють (або переповнюють) ваші цілі числа (до тих пір, поки їх макс є чимось розумним, як 2 16 ).
Оцінка балів
Написати цю програму зазвичай було б просто. Написати це з невеликим стрижнем важко.
Виграє програма з найменшим розміром ядра (найменшим N). У разі зв’язків переможцем стає повна програма (квадрат (N + 8) × (N + 8) з найменшими чіткими символами (не рахуючи нових рядків).
Будь ласка, повідомте про своє значення N у верхній частині відповіді.