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, m
a 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, 720
aby poddrzewa 24
i 30
poddrzewa były prawidłowo rozmieszczone. Należy również pamiętać, że 24
i 30
mieć dwa poziomy oddziałów bo 4
i 6
mieć dzieci węzły, które wymagają prawidłowego odstępu i dzieci węzły 30
muszą 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
, gdzien
dodatnia 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