Це питання стосується абелевих пісковиків . Прочитайте цей попередній виклик і перегляньте це чисельне відео, щоб дізнатися більше.
Абелевий пісковик розміром n на n - це сітка, що містить числа 0, 1, 2 і 3 (що представляє кількість зерен піску). Додавання двох пісковиків працює, спочатку додаючи елемент за елементом, а потім підсипаючи будь-який елемент, що перевищує 3. Порядок, в якому ви пересипаєте, не має значення, кінцевий результат такий же. Коли клітина перекидається, її кількість зменшується на 4, а кожен з її прямих сусідів збільшується на 1. Це може спричинити ланцюгову реакцію. Якщо клітина знаходиться на краю сітки, будь-які зерна, які випадають з сітки під час збивання, зникають.
Наприклад, я додаю два пісковики 3 на 3 (даючи досить екстремальну ланцюгову реакцію):
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
3 3 3 + 2 1 2 = 5 4 5 -> 6 0 6 -> 2 4 2 -> 3 0 3 -> 5 0 5 -> 1 4 1 -> 2 0 2 -> 4 0 4 -> 0 4 0 -> 1 0 1
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
У цьому виклику нас цікавить підмножина всіх можливих n на n пісковиків. Цей підмножина містить будь-який пісковик, який ви можете отримати, додавши довільний пісковик до всіх-3s n на n sandpile. Наприклад, трохи вище ми побачили, що 212 | 101 | 212
є в підмножині, тому що ми отримали це, додавши щось до все-3 пісочника.
Тепер цей підмножина має цікавий елемент: елемент ідентичності . Якщо взяти цей елемент і додати його до будь-якого іншого елемента в підмножині , сума не зміниться. Іншими словами, цей пісковик діє як нуль цього підмножини. Так буває, що 212 | 101 | 212
це нульовий елемент для підмножини 3 на 3. Наприклад:
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
2 2 2 + 1 0 1 = 3 2 3 -> 5 2 5 -> 1 6 1 -> 2 2 2
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
Тепер це ваша задача: з огляду на п , знайти одиничний елемент підмножини п по п сітці . Виведіть його, призначивши унікальний колір з достатнім контрастом на ваш вибір кожному з них 0, 1, 2, 3
та виведіть зображення n на n. Ваш код повинен бути спроможним створити корпус розміром 50 на 50 на розумному сучасному ПК.
Наприклад, елемент ідентичності 500 на 500:
Тут синій = 3, зелений = 2, червоний = 1, білий = 0. Але вам не потрібно використовувати цю колірну гаму у своїй відповіді.