Zadanie: TET Tetris - ASD-SIO
Transkrypt
Zadanie: TET Tetris - ASD-SIO
Zadanie: TET Tetris Dost˛epna pami˛eć: 64 MB. Mamy plansz˛e o szerokości 4 i wysokości n, podzielona˛ na 4n kwadratów jednostkowych. Mamy do dyspozycji mnóstwo klocków takich jak w klasycznej odmianie gry Tetris, które możemy obracać — też jak w Tetrisie, czyli o wielokrotności kata ˛ 90◦ . Na ile sposobów możemy pokryć wszystkie pola naszej planszy klockami? Dla jasności: kwadraty jednostkowe klocków musza˛ si˛e dokładnie pokrywać z kwadratami jednostkowymi planszy; klocki nie moga˛ nachodzić na siebie ani wystawać poza plansz˛e; klocków każdego rodzaju mamy dowolnie wiele. Dwa pokrycia uważamy za różne, jeśli po nałożeniu jednego na drugie jakiś klocek nie leży równo na swoim odpowiedniku w drugim pokryciu. Przypomnienie, jak wygladaj ˛ a˛ klocki w Tetrisie: http://pl.wikipedia.org/wiki/Tetris. Wejście W pierwszym i zarazem jedynym wierszu wejścia znajduja˛ si˛e dwie liczby całkowite n oraz m (1 ≤ n, m ≤ 109 ). Wyjście Twój program powinien wypisać jedna˛ nieujemna˛ liczb˛e całkowita: ˛ reszt˛e z dzielenia przez m liczby pokryć prostokata ˛ 4×n klockami z Tetrisa. Przykład Dla danych wejściowych: poprawnym wynikiem jest: 3 1000 23 natomiast dla danych: poprawnym wynikiem jest: 5 1000000000 454 1/1 Tetris