import std.stdio;
void main()
{
uint[] u1 =
[
0, 1, 2, 3,
4, 5, 6, 7,
8, 9,10,11,
12,13,14,15,
16,17,18,19,
20,21,22,23,
24,25,26,27,
28,29,30,31,
];
// 二次元配列は、定義時と使用時の[]の順序が逆
ubyte[16][7] u2 =
[
0,0,0,0,
0,0,0,0,
1,1,1,1,
0,0,0,0,
0,0,0,0,
0,0,2,0,
0,2,2,2,
0,0,0,0,
0,0,0,0,
0,3,3,0,
0,0,3,3,
0,0,0,0,
0,0,0,0,
0,0,4,4,
0,4,4,0,
0,0,0,0,
0,0,0,0,
0,0,0,5,
0,5,5,5,
0,0,0,0,
0,0,0,0,
0,6,0,0,
0,6,6,6,
0,0,0,0,
0,0,0,0,
0,7,7,0,
0,7,7,0,
0,0,0,0,
];
for (uint y; y < 8; ++y)
{
for (uint x; x < 4; ++x)
{
writef("%2d ", u1[y * 4 + x]);
}
}
writeln("");
for (uint z; z < 7; ++z)
{
for (uint y; y < 4; ++y)
{
for (uint x; x < 4; ++x)
{
writef("%2d ", u2[z][y * 4 + x]);
}
writeln("");
}
writeln("");
}
}
aW1wb3J0IHN0ZC5zdGRpbzsKCnZvaWQgbWFpbigpCnsKCXVpbnRbXSB1MSA9CglbCgkJIDAsIDEsIDIsIDMsCgkJIDQsIDUsIDYsIDcsCgkJIDgsIDksMTAsMTEsCgkJMTIsMTMsMTQsMTUsCgoJCTE2LDE3LDE4LDE5LAoJCTIwLDIxLDIyLDIzLAoJCTI0LDI1LDI2LDI3LAoJCTI4LDI5LDMwLDMxLAoJXTsKCgkvLyDkuozmrKHlhYPphY3liJfjga/jgIHlrprnvqnmmYLjgajkvb/nlKjmmYLjga5bXeOBrumghuW6j+OBjOmAhgoJdWJ5dGVbMTZdWzddIHUyID0KCVsKCQkwLDAsMCwwLAoJCTAsMCwwLDAsCgkJMSwxLDEsMSwKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsMCwyLDAsCgkJMCwyLDIsMiwKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsMywzLDAsCgkJMCwwLDMsMywKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsMCw0LDQsCgkJMCw0LDQsMCwKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsMCwwLDUsCgkJMCw1LDUsNSwKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsNiwwLDAsCgkJMCw2LDYsNiwKCQkwLDAsMCwwLAoKCQkwLDAsMCwwLAoJCTAsNyw3LDAsCgkJMCw3LDcsMCwKCQkwLDAsMCwwLAoJXTsKCglmb3IgKHVpbnQgeTsgeSA8IDg7ICsreSkKCXsKCQlmb3IgKHVpbnQgeDsgeCA8IDQ7ICsreCkKCQl7CgkJCXdyaXRlZigiJTJkICIsIHUxW3kgKiA0ICsgeF0pOwoJCX0KCX0KCXdyaXRlbG4oIiIpOwoKCWZvciAodWludCB6OyB6IDwgNzsgKyt6KQoJewoJCWZvciAodWludCB5OyB5IDwgNDsgKyt5KQoJCXsKCQkJZm9yICh1aW50IHg7IHggPCA0OyArK3gpCgkJCXsKCQkJCXdyaXRlZigiJTJkICIsIHUyW3pdW3kgKiA0ICsgeF0pOwoJCQl9CgkJCXdyaXRlbG4oIiIpOwoJCX0KCQl3cml0ZWxuKCIiKTsKCX0KfQo=