Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Wisienka na torcie
(wisienka-na-torcie)
Limit pamięci: 256 MB
Limit czasu: 2.00 s

Jasiu przygotowuje ciasto na urodziny Małgosi. Jako że Małgosia jest całkiem wybrednym dzieckiem, to powstała lista życzeń odnośnie tego jak ma wyglądać ciasto:

  1. Ciasto ma być kwadratowe i mieć wymiary 2N na 2N.

  2. Na cieście ma się znajdować wisienka, która będzie się znajdowała w punkcie (X,Y).

  3. Całe ciasto (poza miejscem z wisienką) ma być pokryte lukrem, w taki sposób, aby tworzył on obrazek składający się z kwadratów, z czego każdy z nich ma inny kolor, a ich boki są równe pewnej całkowitej potędze dwójki.

  4. Żadnego miejsca ciasta nie można pokryć lukrem więcej niż jeden raz.

Lista ta jest wyjątkowo specyficzna, a w domu nie ma żadnego lukru, więc Jasiu postanowił nie marnować czasu i pójść do sklepu. Dla każdego i ∈ [0,N−1] kupił Li opakowań lukru i–tego typu. Opakowanie lukru i–tego typu ma dokładnie tyle lukru ile potrzeba na pomalowanie wypełnionego kwadratu o wymiarach 2i na 2i. Każdy z kupionych przez niego lukrów ma inny kolor, więc każdego z nich można będzie użyć do narysowania tylko jednego kwadratu.

Jasiu podejrzewa, że mógł się pomylić i albo nie będzie w stanie spełnić specyfikacji Małgosi, albo kupił za dużo lukru co go mocno zirytuje, bo Jasiu nie lubi kupować rzeczy w nadmiarze. Niestety nie jest w stanie tego szybko ustalić, dlatego poprosił Cię o pomoc w stwierdzeniu czy może on wykorzystać cały lukier do spełnienia zachcianek Małgosi i jeżeli jest to możliwe, o znalezienie sposobu pokrycia ciasta całym lukrem.

Wejście

W pierwszym wierszu wejścia znajduje się trzy liczby całkowite N, X, Y będące odpowiednio liczbą określającą wymiary ciasta oraz współrzędnymi opisującymi położenie wisienki na torcie.
W drugim (i ostatnim) wierszu wejścia znajduję się N liczb całkowitych z czego i–ta z nich to Li − 1, czyli liczba kupionych opakowań lukru i–tego typu.

Wyjście

W pierwszym wierszu wyjścia powinno się znaleźć słowo TAK, jeżeli jest możliwe wykorzystanie całego lukru do spełnienia zachcianek Małgosii lub NIE w przeciwnym wypadku.
Jeżeli zostało wypisane TAK, to w następnych N wierszach powinien znaleźć się opis pokrycia ciasta lukrem.
W i–tym wierszu opisu powinny się znajdować trzy liczby całkowite Ki, Xi, Yi oznaczające odpowiednio, że opakowaniem lukru Ki–tego typu namalowano kwadrat o wymiarach 2Ki na 2Ki, którego lewy dolny róg jest w punkcie (Xi,Yi). Liczba wystąpień Ki równych j w opisie powinna być równa Lj.

Ograniczenia

1 ≤ N ≤ 60, 1 ≤ X, Y ≤ 2N, 0 ≤ Li ≤ 100 000, ∑Li ≤ 100 000.

Przykład

Wejście Wyjście
1 1 1
3
TAK
0 1 2
0 2 1
0 2 2

Ilustracja poniżej jest reprezentacją podanego rozwiązania powyższego testu przykładowego. Czerwona kropka oznacza wisienkę, a kolorowe kwadraty lukier. Zwróć uwagę, że w punkcie z wisienką nie ma lukru.

Wejście Wyjście
2 3 4
7 2
TAK
1 1 2
0 1 1
0 2 1
0 1 4
0 2 4
1 3 2
0 3 1
0 4 1
0 4 4