-- http://c...content-available-to-author-only...e.com/questions/49050/tiling-a-2n-by-2n-grid-with-l-shaped-trominoes#59330
import Control.Applicative -- not needed in GHC 7.10
g n s x y
|n
<1=[s
]|x
>k
=r
<$>g n s
(2^n
+1-x
)y
|y
>k
=r
$g n s x
$2
^n
+1-y
|0<1=zipWith(++)(h s x y
++h
"-"k
1)$h
"|"1 k
++h
"+"1 1 where m
=n
-1;k
=2^m;h
=g m
LS0gaHR0cDovL2MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL3F1ZXN0aW9ucy80OTA1MC90aWxpbmctYS0ybi1ieS0ybi1ncmlkLXdpdGgtbC1zaGFwZWQtdHJvbWlub2VzIzU5MzMwCgppbXBvcnQgQ29udHJvbC5BcHBsaWNhdGl2ZSAtLSBub3QgbmVlZGVkIGluIEdIQyA3LjEwCgpyPXJldmVyc2UKZyBuIHMgeCB5fG48MT1bc118eD5rPXI8JD5nIG4gcygyXm4rMS14KXl8eT5rPXIkZyBuIHMgeCQyXm4rMS15fDA8MT16aXBXaXRoKCsrKShoIHMgeCB5KytoIi0iayAxKSRoInwiMSBrKytoIisiMSAxIHdoZXJlIG09bi0xO2s9Ml5tO2g9ZyBtCmYgbiB4PXVubGluZXMuZyBuIk8ieAoKbWFpbj1wdXRTdHIoZiA1IDEwIDE1KQ==