Ostatnie posty

Prawie to samo co u Jana, tylko bez obracania. Procedura rysuje trójkąt bez lewego boku zaczynając od lewego dolnego rogu, a kończąc w górnym. Jeśli ma parzyście wiele wierszy, rysujemy dolny wiersz osobno. Jeśli ma nieparzyście wiele wierszy to rozbijamy tak: https://i.imgur.com/ucEsNlX.png. Najpierw idziemy narysować te dwa czerwone trójkąty rekurencyjnie, wracamy po ich lewym boku, potem idziemy narysować romb (zygzakiem na dole) i na końcu kończymy ramkę.
Rysunek: https://ibb.co/pZzjJ3G

Trójkąt ABC o boku n rysujemy od punktu A do punktu B - rysujemy go bez górnych brzegów AC i BC
Rekurencyjnie budujemy sekwencję ruchów dla trójkąta o boku k = floor((n-1)/2) i powtarzamy ją 2 razy => otrzymujemy trójkąty ADF i DEG - oba z narysowaną podstawą ale bez górnych boków (całość przechodzi z A do E
Kolejny krok to przejście E => G
Od punktu G rysujemy romb GDFH jako k-krotne powtórzenie sekwencji k ząbków z powrotem - jeden wiersz przechodzi od G do D (prosta) oraz dalej do K (łamana) => k takich wierszy doprowadza do punktu H (romb nie ma narysowanego boku FH)
Ostatni krok to wypełniania trójkąta to czworokąt HEBC z punktu H do B - w zależności od parzystości n ma on szerokość 1 lub 2, więc robimy ząbki pojedyncze lub podwójne.

Dopełnieniem jest dorysowanie boków BC i CA

Oczywiście przy powielaniu sekwencji ruchów x razy dynamikiem wyznaczam optymalny podział na mnożniki, np. 98*S => 2[7[7[S]]]
Ja też jestem zaciekawiony jak checker działa :)
Czemu ranking nie jest aktualizowany od razu po ujawnieniu wyników?
Hashuje zbiór odwiedzonych krawędzi, czyli mądrzej. Ciekawostka: u nas można było zaczynać w dowolnym punkcie, gdyż na początku źle przeczytaliśmy treść z OIJ i myśleliśmy, że tam też.
Zaczynamy w lewym dolnym wierzchołku. Robimy procedurę, która rysuje trójkąt bez dolnej podstawy. Dzielimy swój trójkąt na 3 figury, od lewego dolnego wierzchołka do połowy prawej ściany tworzymy taki romb o boku n/2, taki romb oczywiście łatwo się rysuje, jednak rysujemy go bez dolnej podstawy. Skończyliśmy rysować romb w połowie lewej ściany, ruszamy się do górnego wierzchołka trójkąta. Teraz zostały nam do zrobienia dwa kawałki, które są trójkątami i wyglądają prawie tak samo (dolny może być większy o 1). Tylko te trójkąty mają już stworzoną lewą i dolną ścianę :( Obróćmy więc rysunek tak, żeby lewa ściana stała się dolną i narysujmy trójkąty o 1 mniejsze niż mamy na to miejsce, dzięki temu nie przejedziemy dwa razy po tej zajętej krawędzi. No to wywołujemy się rekurencyjnie, a jeden/dwa ostatnie poziomy rysujemy ręcznie.
Z ciekawości. Jak działa tutaj checker? Hashuje zbiór odwiedzonych punktów, czy jakoś mądrzej?
Czy ktoś, kto ma 10 chce się podzielić rozwiązaniem (albo po prostu wrzucić swój kod)
Potwierdzam, ale coś tu poszło nie tak, na oko wygląda na to że każdy plik zawiera dużo kopii tego samego testu?
Zadanie pod tytułem "Drybling Bajtessiego" ma skrót BAJ. To chyba znaczy, że skrót DRY musi być zajęty przez inne zadanie? :)
Potwierdzam
potwierdzam
potwierdzam