8×8 のマス目を考えます。 このマス目の幾つかは黒く塗られています。黒く塗られていないマス目は白いマス目です。 白いマス目のうち4つを使ってテトロミノを作る方法が何通りあるか、テトロミノの種類ごとに数えるプログラムを書いて下さい。
標準入力から入る文字列は、2桁ごとに空白が入った、合計16桁の16進数になっています。
入力は16進数16桁なので、64bit あります。各ビットがマスの色に対応しています。
マス目の左上が最上位ビット、その左隣が次のビット、最下位ビットが右下隅になります。
立っているビット(つまり、2進数の 1)が黒いマス、立っていないビット(つまり、2進数の0)が白いマスを意味します。
下の方に具体例がありますので、参考にして下さい。
4種類のテトロミノの作り方が何通りあるか、I, L, O, S, T の順にコンマ区切り(空白なし)で出力して下さい。末尾の改行も不要です。テトロミノの名前と形の対応は、下表のとおりです。
I | L | O | S | T |
---|---|---|---|---|
|
|
|
|
回転したり裏返したりして同じ形になるものは同じ名前になります。 例えば、L の上下逆さまの形や90度回転した形も L という名前です。
入力 | 入力の意味する図形 | 出力 |
---|---|---|
ff f0 ef f1 df f2 cf ff
|
|
1,0,0,0,0
|
ff 9d a5 a5 dd 9b b1 ff
|
|
1,1,1,1,1
|
ff 8d ad 8d fd 8d 8d ff
|
|
3,12,2,2,2
|
bf a1 ad ad a5 bd 81 ff
|
|
12,9,0,0,0
|
3f 39 c9 cf f3 93 9c fc
|
|
0,0,6,0,0
|
ff 99 bd e7 bd bf e3 ff
|
|
0,0,0,0,0
|
入力 | 入力の意味する図形 | 出力 |
---|---|---|
00 00 00 00 00 00 00 00
|
|
80,336,49,168,168
|
00 ff 42 7e 42 7e ff 00
|
|
14,0,0,0,0
|
bb 88 ee 22 bb 88 ee 22
|
|
0,21,0,0,0
|
92 24 49 92 24 49 92 24
|
|
0,0,0,28,0
|
a2 15 a8 45 2a 51 8a 54
|
|
0,0,0,0,22
|
26 55 99 66 2c d3 4a 34
|
|
0,0,0,0,0
|
44 7a 49 d6 72 4e 77 88
|
|
0,0,0,0,0
|
aa 00 55 00 aa 00 55 00
|
|
20,84,0,21,21
|
00 7f 41 5d 55 5d 41 7f
|
|
18,10,0,0,0
|
10 88 44 22 91 88 44 32
|
|
2,42,11,40,36
|
93 1e 26 b2 72 d8 ae 96
|
|
5,15,3,9,8
|
da 4e ce 0f cb f5 ba 9b
|
|
4,14,3,7,8
|