Estetycznym dzielnik drzewo jest drzewem dzielników wejściowych n, że dla dowolnej liczby kompozytowego m, ma dwoje dzieci węzły, które są parą dzielników , które znajdują się najbliżej do pierwiastka kwadratowego z m. Lewy węzeł powinien być mniejszym dzielnikiem, ma prawy węzeł powinien być większym dzielnikiem m. Liczba pierwsza w drzewie nie powinna mieć węzłów potomnych. Twoje drzewo może być w formie grafiki tekstowej lub obrazu. Zasady wyświetlania grafiki tekstowej są następujące.
Zasady odstępów
Aby rozmieścić węzły w drzewie, obowiązują następujące zasady:
- Węzły na danej głębokości od katalogu głównego powinny znajdować się w tym samym wierszu tekstu na wyjściu.
/ \ NIE / \ / \ / 3 2 3 2
- W przypadku lewych węzłów gałąź przychodząca powinna znajdować się w prawym górnym rogu, jeśli węzeł jest liczbą jednocyfrową, w przeciwnym razie tuż powyżej ostatniej cyfry. Przykład:
/ I / 3 720
- W przypadku węzłów prawych gałąź przychodząca powinna znajdować się w lewym górnym rogu, jeśli węzeł jest liczbą jednocyfrową, w przeciwnym razie tuż powyżej pierwszej cyfry. Przykład:
\ I \ 7 243
- W przypadku wychodzących lewych gałęzi gałąź powinna zaczynać się o jedną spację po lewej stronie liczby. Przykład:
275 / 11
- W przypadku wychodzących prawych gałęzi gałąź powinna rozpoczynać się o jedną spację po prawej stronie liczby. Przykład:
275 \ 25
- Każde dwa węzły na tym samym poziomie drzewa powinny mieć między sobą co najmniej dwa odstępy. W tym samym czasie dowolne dwa poddrzewa na tym samym poziomie drzewa powinny mieć możliwie jak najmniej odstępów.
To drzewo nie działa, ponieważ ** poddrzewa ** są zbyt blisko.
504
/ \
/ \
/ \
/ \
21 24
/ \. / \
/ \. / \
3 7. 4 6
. / \ / \
.2 2 2 3
Podczas gdy drzewo ma wystarczająco dużo miejsca między gałęziami.
504
/ \
/ \
/ \
/ \
/ \
21 ... 24
/ \ ... / \
/ \ ... / \
3 7 ... 4 6
... / \ / \
... 2 2 2 3
- Jeśli jakieś dwa poddrzewa znajdują się zbyt blisko siebie na drzewie, można je rozdzielić, dodając kolejny rząd gałęzi
/\do drzewa nad rodzicami.
441
/ \ Ostatni wiersz nie jest jeszcze wypełniony i zabrakło nam już miejsca.
21 21
/ \ / \
Dodaj kolejny rząd gałęzi
441
/ \ Prawie, ale 7 i 3 są zbyt blisko siebie.
/ \ Powinien to zrobić jeszcze jeden wiersz.
21 21
/ \ / \
3 7 3 7
Dodaj kolejny rząd gałęzi
441
/ \ I gotowe.
/ \
/ \
21 21
/ \ / \
3 7 3 7
Przykłady
Jako pełny przykład drzewo dzielnika 24 będzie wyglądało następująco:
24
/ \
/ \
4 6
/ \ / \
2 2 2 3
4 i 6 to para dzielników najbliższych pierwiastkowi kwadratowemu z 24. 4 znajduje się po lewej stronie, ponieważ jest mniejsza. W następnym wierszu liczba 2 po lewej stronie 3, ponieważ jest mniejsza.
Drzewo dzielnika dla 63 powinno wyglądać następująco:
63 and NOT like this 63
/ \ / \
7 9 3 21
/ \ / \
3 3 7 3
W niewłaściwym drzewie 3 i 21 nie są parą dzielników najbliższych pierwiastkowi kwadratowemu 63, a 3 i 7 nie są odpowiednio posortowane. Jednak umieszczenie gałęzi na 21 jest prawidłowe.
Dla 42 powinieneś mieć:
42 and NOT 42
/ \ / \
6 7 21 2
/ \ / \
2 3 3 7
Spójrzmy na 720. Zauważ, że potrzebujemy pięciu poziomów gałęzi, 720aby poddrzewa 24i 30poddrzewa były prawidłowo rozmieszczone. Należy również pamiętać, że 24i 30mieć dwa poziomy oddziałów bo 4i 6mieć dzieci węzły, które wymagają prawidłowego odstępu i dzieci węzły 30muszą być na tym samym poziomie jak dzieci węzłów 24.
720
/ \
/ \
/ \
/ \
/ \
24 30
/ \ / \
/ \ / \
4 6 5 6
/ \ / \ / \
2 2 2 3 2 3
Wyzwanie
- Twoim zadaniem jest zbudowanie odpowiednio rozmieszczonego, estetycznego drzewa dzielnika dla danych wejściowych
n, gdziendodatnia liczba całkowita jest większa niż 1. - Twój wynik może zawierać początkowe i końcowe spacje oraz wiodące i końcowe znaki nowej linii, ale w przeciwnym razie musi być zgodny z powyższymi regułami odstępów.
- Twoje dane wyjściowe mogą być: tekstem, obrazem (w razie potrzeby można dodać inne formaty).
- W przypadku obrazów upewnij się, że węzły drzewa są dobrze rozmieszczone, a węzły na tej samej wysokości w drzewie znajdują się na tej samej wysokości na obrazie.
- To jest kod golfowy. Najmniej wygranych bajtów (lub ich odpowiedników).
Podziękowania dla Stewiego Griffina za przemyślenie tego pomysłu i wielkie podziękowania dla Petera Taylora, Martina Endera, Mego i Eᴀsᴛᴇʀʟʏ Iʀᴋ za ich pomoc w przepisaniu specyfikacji. Jak zwykle wszelkie sugestie lub poprawki są mile widziane. Powodzenia i dobrej gry w golfa!
Więcej przypadków testowych:
2
4
/ \
2 2
20
/ \
4 5
/ \
2 2
323
/ \
17 19
362880
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
576 630
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
24 24 21 30
/ \ / \ / \ / \
/ \ / \ / \ / \
4 6 4 6 3 7 5 6
/ \ / \ / \ / \ / \
2 2 2 3 2 2 2 3 2 3
1286250
/ \
/ \
/ \
/ \
/ \
1050 1225
/ \ / \
/ \ / \
/ \ / \
30 35 35 35
/ \ / \ / \ / \
5 6 5 7 5 7 5 7
/ \
2 3

