Abelowa sandpile , dla naszych celów jest nieskończona siatka współrzędnych całkowitych, początkowo pusty piasku. Po każdej sekundzie ziarenko piasku umieszczane jest na (0,0). Ilekroć komórka siatki ma 4 lub więcej ziaren piasku, rozlewa jedno ziarno piasku do każdego z czterech sąsiadów jednocześnie. Sąsiedzi (x, y) to (x-1, y), (x + 1, y), (x, y-1) i (x, y + 1).
Gdy komórka się rozlewa, może to spowodować rozlanie jej sąsiadów. Kilka faktów:
- Ta kaskada ostatecznie się skończy.
- Kolejność rozlewania się komórek jest nieistotna; wynik będzie taki sam.
Przykład
Po 3 sekundach wygląda siatka
.....
.....
..3..
.....
.....
Po 4 sekundach:
.....
..1..
.1.1.
..1..
.....
Po 15 sekundach:
.....
..3..
.333.
..3..
.....
A po 16 sekundach:
..1..
.212.
11.11
.212.
..1..
Wyzwanie
W jak najmniejszej liczbie bajtów napisz funkcję, która przyjmuje pojedynczą dodatnią liczbę całkowitą t i wysyła obraz stosu piasku po t sekundach.
Wejście
Pojedyncza dodatnia liczba całkowita t , w dowolnym wybranym formacie.
Wynik
Zdjęcie stosu piasku po t sekundach przy użyciu znaków
. 1 2 3
Edycja: użyj dowolnych czterech wyraźnych znaków lub narysuj obrazek. Jeśli nie używasz „.123” lub „0123”, podaj w odpowiedzi, co oznaczają znaki.
W przeciwieństwie do przykładów, dane wyjściowe powinny zawierać minimalną liczbę wierszy i kolumn niezbędnych do wyświetlenia niezerowej części sandpile.
Oznacza to, że dla wejścia 3 wyjście powinno być
3
Dla 4 wyjście powinno być
.1.
1.1
.1.
Punktacja
Obowiązuje standardowa punktacja golfowa.
Zasady
Niedozwolone są funkcje językowe i biblioteki, które już wiedzą, co to jest sandpile.
Edycja: Sekcja wyników została edytowana, ograniczenie zestawu znaków zostało całkowicie zniesione. Użyj dowolnych czterech różnych znaków lub kolorów, które lubisz.
.
puste komórki? Czy możemy mieć 0
jako prawidłową pustą komórkę?
0
? Jaki jest zatem wynik?