In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Spotykasz na szlaku roztrzęsioną turystkę. Dostała ona od męża nowiuteniką mapę, której teraz nie może poskładać. Postanowiłeś jej pomóc. Mapa składa się z kwadratów jednostkowych (tj. takich, których już nie można złożyć).
Pomiędzy każdą parą kwadratów jednostkowych są zagięcia: niektóre wypukłe, a inne wklęsłe. Mapę można składać wzdłuż pionowych i poziomych prostych, przechodzących pomiędzy kwadratami jednostkowymi, o ile spełnione są dwa warunki.
Po pierwsze, wszystkie zgięcia na tej prostej muszą być tego samego rodzaju. Po drugie, zagięcia, które zetkną się ze sobą po złożeniu, powinny być ze sobą zgodne, tzn. być przeciwnego typu przed wykonaniem zgięcia.
Twoje zadanie polega na tym, by powiedzieć turystce, jak poskładać mapę, by miała rozmiar kwadratu jednostkowego.
Pierwszy wiersz wejścia zawiera dwie liczby naturalne i (), oznaczające odpowiednio wysokość i szerokość mapy; kwadrat jednostkowy ma wymiary .
Kolejne wierszy zawiera opisy zagięć pomiędzy kwadratami jednostkowymi sąsiadującymi w poziomie. W -tym z nich znajduje się ciąg znaków \^ (zagięcie wypukłe) lub v (zagięcie wklęsłe), opisujący kolejne zagięcia w -tym wierszu kwadratów jednostkowych. Następne wierszy opisy zagięć pomiędzy kwadratami jednostkowymi sąsiadującymi w pionie. W -tym z nich znajduje się ciąg znaków \^ (zagięcie wypukłe) lub v (zagięcie wklęsłe), opisujący kolejne zagięcia pomiędzy odpowiednimi kwadratami w -tej oraz -szej kolumnie kwadratów jednostkowych.
W pierwszym wierszu standardowego wyjścia należy wypisać jedno słowo TAK lub NIE, w zależności od tego, czy mapę da się poskładać. Jeśli jest to wykonalne, kolejny wiersz powinien zawierać jedną liczbę całkowitą , oznaczającą liczbę kroków potrzebnych do jej złożenia. Każdy z kolejnych wierszy powinien opisywać wykonanie jednego złożenia w postaci jednego znaku oraz liczby całkowitej . Znak to | lub -, określa on czy wykonujemy złożenie wzdłuż pionowej, czy poziomej prostej. Jeśli wykonujemy pionowe złożenie, przebiega ono wzdłuż prostej pomiędzy kolumnami kwadratów jednostkowych numer oraz . Jeśli zaś wykonujemy złożenie poziome, przebiega ono wzdłuż prostej pomiędzy wierszami kwadratów jednostkowych numer oraz . Numeracja kwadratów jest ustalona na początku i nie zmienia się w czasie składania. Gdy po złożeniu mapy nakłada się się na siebie kilka prostych, można używać numerów dowolnych z nich.
W przypadku gdy istnieje poprawnych rozwiązań, możesz wypisać dowolne z nich.
Dla danych wejściowych:
2 3 ^^ ^v v^^
poprawną odpowiedzią jest:
TAK 3 | 1 - 1 | 2
Rysunek mapy z testu przykładowego. Pogrubione krawędzie oznaczają zgięcia wklęsłe, a zwykłe - wypukłe.
Autorzy zadania: Piotr Niedźwiedź i Jakub Pawlewicz.