Petoris
Siz petoris adlı bir tapmaca oyunu oynayırsınız. Bu oyun, kvadrat şəbəkələrə bölünmüş bir lövhə və hər biri bir şəbəkəyə uyğun gələn kvadrat plitələrdən ibarətdir. Oyunun hər addımında, qismən plitələrlə doldurulmuş bir lövhəyə sahibsiniz. Əlavə olaraq, bir neçə plitədən ibarət bir blokunuz var. Bu bloku lövhədə bir yerə yerləşdirməli və ya atmalısınız, yerləşdirmə ilə bağlı aşağıdakı məhdudiyyətlərə riayət etməklə:
Blok döndərilə bilər, amma bölünə və ya çevrilə bilməz;
Blokun heç bir plitəsi lövhədə mövcud olan plitələrlə toqquşa bilməz; və
Blokun bütün plitələri lövhənin içində yerləşdirilməlidir.
Sizin vəzifəniz, bu addımda qazana biləcəyiniz maksimum xalı tapmaq üçün bir proqram yazmaqdır. Burada xal, blok yerləşdirildikdən sonra plitələrlə tam doldurulmuş üfüqi xətlərin sayıdır, və ya atılma halında −1.
Giriş verilənləri
Girişin ilk sətri N, məlumat dəstlərinin sayını göstərir. Sonra N məlumat dəsti gəlir. Hər bir məlumat dəsti bir blok və bir lövhəni təsvir edən sətirlərdən ibarətdir. Hər bir təsvir (həm blok, həm də lövhə üçün) iki tam ədəd H və W, şaquli və üfüqi ölçüləri olan bir sətrlə başlayır. Sonra H sətir gəlir, hər biri W simvoldan ibarətdir, burada '#' bir plitəni və '.' bir boşluğu təmsil edir. Siz 0 < H ≤ 64 və 0 < W ≤ 64 olduğunu qəbul edə bilərsiniz. Hər bir blok bir və ya daha çox plitədən ibarətdir və hamısı bir-birinə bağlıdır. Hər bir lövhə sıfır və ya daha çox plitə ehtiva edir və başlanğıc vəziyyətində plitələrlə tam doldurulmuş üfüqi xəttə malik deyil.
Çıxış verilənləri
Hər bir məlumat dəsti üçün maksimum mümkün xalı bir sətirdə çap edin.