搜索题,我是用程序来算的常数表,采用坐标位移法描述,然后就是裸搜了,我的搜索顺序是左上,右下,左上,右下。。。交替搜索,这样可以使节点枚举的限制较大,是个不错的优化手段,然后就是卡时,定到1000000就可以了,贴源码(居然25Kb):
const
path:array[1..55,1..2] of longint=((1,1),(10,10),(2,1),(10,9),(2,2),(9,9),(3,1),(10,8),(3,2),(9,8),(3,3),(8,8),(4,1),(10,7),(4,2),(9,7),(4,3),(8,7),(4,4),(7,7),(5,1),(10,6),(5,2),(9,6),(5,3),(8,6),(5,4),(7,6),(5,5),(6,6),(6,1),(10,5),(6,2),(9,5),(6,3),(8,5),(6,4),(7,5),(6,5),(7,1),(10,4),(7,2),(9,4),(7,3),(8,4),(7,4),(8,1),(10,3),(8,2),(9,3),(8,3),(9,1),(10,2),(9,2),(10,1));
size:array['A'..'L'] of longint=( 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5);
coun:array['A'..'L'] of longint=(12, 8,32, 4,20,40,20,40,40, 5,20,40);
map:array['A'..'L',1..40,1..5,1..2] of longint=
(
(
(( 0, 0),(-1, 0),( 0, 1),( 0, 0),( 0, 0)),
(( 1, 0),( 0, 0),( 1, 1),( 0, 0),( 0, 0)),
(( 0,-1),(-1,-1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),(-1, 0),( 0, 0),( 0, 0)),
(( 0, 1),( 0, 0),(-1, 1),( 0, 0),( 0, 0)),
(( 1, 0),( 1,-1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 0,-1),( 0, 0),( 0, 0)),
((-1, 0),( 0, 0),(-1,-1),( 0, 0),( 0, 0)),
(( 0, 1),( 1, 1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 1, 0),( 0, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 1,-1),( 0, 0),( 0, 0)),
((-1, 0),(-1, 1),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 0, 0)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 0, 0)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 0, 0)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),( 0, 0)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 0, 0)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 0, 0)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),( 0, 0)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 0, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 0, 0)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),( 0,-1),( 0, 0)),
(( 1, 0),( 0, 0),(-1, 0),( 1,-1),( 0, 0)),
(( 2, 0),( 1, 0),( 0, 0),( 2,-1),( 0, 0)),
(( 0, 1),(-1, 1),(-2, 1),( 0, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1, 0),( 0, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 1, 1),( 0, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 2),( 0, 0)),
((-1, 0),(-1,-1),(-1,-2),( 0, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0, 1),( 0, 0)),
((-1, 0),( 0, 0),( 1, 0),(-1, 1),( 0, 0)),
((-2, 0),(-1, 0),( 0, 0),(-2, 1),( 0, 0)),
(( 0,-1),( 1,-1),( 2,-1),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 0),( 0, 0)),
(( 0,-1),( 0, 0),( 0, 1),(-1,-1),( 0, 0)),
(( 0,-2),( 0,-1),( 0, 0),(-1,-2),( 0, 0)),
(( 1, 0),( 1, 1),( 1, 2),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),( 0, 1),(-1, 1),( 0, 0)),
(( 1, 0),( 0, 0),( 1, 1),( 0, 1),( 0, 0)),
(( 0,-1),(-1,-1),( 0, 0),(-1, 0),( 0, 0)),
(( 1,-1),( 0,-1),( 1, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),( 0, 1),( 0, 2),(-1, 2),(-2, 2)),
(( 0,-1),( 0, 0),( 0, 1),(-1, 1),(-2, 1)),
(( 0,-2),( 0,-1),( 0, 0),(-1, 0),(-2, 0)),
(( 1,-2),( 1,-1),( 1, 0),( 0, 0),(-1, 0)),
(( 2,-2),( 2,-1),( 2, 0),( 1, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-2,-1),(-2,-2)),
(( 1, 0),( 0, 0),(-1, 0),(-1,-1),(-1,-2)),
(( 2, 0),( 1, 0),( 0, 0),( 0,-1),( 0,-2)),
(( 2, 1),( 1, 1),( 0, 1),( 0, 0),( 0,-1)),
(( 2, 2),( 1, 2),( 0, 2),( 0, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1,-2),( 2,-2)),
(( 0, 1),( 0, 0),( 0,-1),( 1,-1),( 2,-1)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 0),( 2, 0)),
((-1, 2),(-1, 1),(-1, 0),( 0, 0),( 1, 0)),
((-2, 2),(-2, 1),(-2, 0),(-1, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2, 1),( 2, 2)),
((-1, 0),( 0, 0),( 1, 0),( 1, 1),( 1, 2)),
((-2, 0),(-1, 0),( 0, 0),( 0, 1),( 0, 2)),
((-2,-1),(-1,-1),( 0,-1),( 0, 0),( 0, 1)),
((-2,-2),(-1,-2),( 0,-2),( 0,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),(-1, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0, 1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 1, 1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 2, 1)),
(( 1,-1),( 0,-1),(-1,-1),(-2,-1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),(-1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),(-1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),(-1, 1)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),(-1, 2)),
(( 1, 1),( 1, 0),( 1,-1),( 1,-2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 1,-1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),( 0,-1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-1,-1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-2,-1)),
((-1, 1),( 0, 1),( 1, 1),( 2, 1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),( 1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),( 1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),( 1,-1)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),( 1,-2)),
((-1,-1),(-1, 0),(-1, 1),(-1, 2),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),(-1,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 0,-1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 1,-1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 2,-1)),
(( 1, 1),( 0, 1),(-1, 1),(-2, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 1, 1)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 1, 2)),
((-1, 1),(-1, 0),(-1,-1),(-1,-2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 1, 1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),( 0, 1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-1, 1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-2, 1)),
((-1,-1),( 0,-1),( 1,-1),( 2,-1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),(-1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),(-1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),(-1,-1)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),(-1,-2)),
(( 1,-1),( 1, 0),( 1, 1),( 1, 2),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),(-2, 1)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),(-1, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 0, 1)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),(-2, 0)),
(( 2,-1),( 1,-1),( 0,-1),( 2, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),(-1,-2)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),(-1,-1)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),(-1, 0)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0,-2)),
(( 1, 2),( 1, 1),( 1, 0),( 0, 2),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 2,-1)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 1,-1)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),( 0,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 2, 0)),
((-2, 1),(-1, 1),( 0, 1),(-2, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 1, 2)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 1, 1)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 1, 0)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 2)),
((-1,-2),(-1,-1),(-1, 0),( 0,-2),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),( 0, 1),(-1, 1)),
(( 1, 0),( 0, 0),(-1, 0),( 1, 1),( 0, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 2, 1),( 1, 1)),
(( 0,-1),(-1,-1),(-2,-1),( 0, 0),(-1, 0)),
(( 1,-1),( 0,-1),(-1,-1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1, 0),(-1,-1)),
(( 0, 1),( 0, 0),( 0,-1),(-1, 1),(-1, 0)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 2),(-1, 1)),
(( 1, 0),( 1,-1),( 1,-2),( 0, 0),( 0,-1)),
(( 1, 1),( 1, 0),( 1,-1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0,-1),( 1,-1)),
((-1, 0),( 0, 0),( 1, 0),(-1,-1),( 0,-1)),
((-2, 0),(-1, 0),( 0, 0),(-2,-1),(-1,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 0, 0),( 1, 0)),
((-1, 1),( 0, 1),( 1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 0),( 1, 1)),
(( 0,-1),( 0, 0),( 0, 1),( 1,-1),( 1, 0)),
(( 0,-2),( 0,-1),( 0, 0),( 1,-2),( 1,-1)),
((-1, 0),(-1, 1),(-1, 2),( 0, 0),( 0, 1)),
((-1,-1),(-1, 0),(-1, 1),( 0,-1),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),( 0,-1),(-1,-1)),
(( 1, 0),( 0, 0),(-1, 0),( 1,-1),( 0,-1)),
(( 2, 0),( 1, 0),( 0, 0),( 2,-1),( 1,-1)),
(( 0, 1),(-1, 1),(-2, 1),( 0, 0),(-1, 0)),
(( 1, 1),( 0, 1),(-1, 1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1, 0),( 1,-1)),
(( 0, 1),( 0, 0),( 0,-1),( 1, 1),( 1, 0)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 2),( 1, 1)),
((-1, 0),(-1,-1),(-1,-2),( 0, 0),( 0,-1)),
((-1, 1),(-1, 0),(-1,-1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 0, 1),( 1, 1)),
((-1, 0),( 0, 0),( 1, 0),(-1, 1),( 0, 1)),
((-2, 0),(-1, 0),( 0, 0),(-2, 1),(-1, 1)),
(( 0,-1),( 1,-1),( 2,-1),( 0, 0),( 1, 0)),
((-1,-1),( 0,-1),( 1,-1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 0),(-1, 1)),
(( 0,-1),( 0, 0),( 0, 1),(-1,-1),(-1, 0)),
(( 0,-2),( 0,-1),( 0, 0),(-1,-2),(-1,-1)),
(( 1, 0),( 1, 1),( 1, 2),( 0, 0),( 0, 1)),
(( 1,-1),( 1, 0),( 1, 1),( 0,-1),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-2, 1),(-3, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-1, 1),(-2, 1)),
(( 2, 0),( 1, 0),( 0, 0),( 0, 1),(-1, 1)),
(( 2,-1),( 1,-1),( 0,-1),( 0, 0),(-1, 0)),
(( 3,-1),( 2,-1),( 1,-1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),(-1,-2),(-1,-3)),
(( 0, 1),( 0, 0),( 0,-1),(-1,-1),(-1,-2)),
(( 0, 2),( 0, 1),( 0, 0),(-1, 0),(-1,-1)),
(( 1, 2),( 1, 1),( 1, 0),( 0, 0),( 0,-1)),
(( 1, 3),( 1, 2),( 1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2,-1),( 3,-1)),
((-1, 0),( 0, 0),( 1, 0),( 1,-1),( 2,-1)),
((-2, 0),(-1, 0),( 0, 0),( 0,-1),( 1,-1)),
((-2, 1),(-1, 1),( 0, 1),( 0, 0),( 1, 0)),
((-3, 1),(-2, 1),(-1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 1, 2),( 1, 3)),
(( 0,-1),( 0, 0),( 0, 1),( 1, 1),( 1, 2)),
(( 0,-2),( 0,-1),( 0, 0),( 1, 0),( 1, 1)),
((-1,-2),(-1,-1),(-1, 0),( 0, 0),( 0, 1)),
((-1,-3),(-1,-2),(-1,-1),( 0,-1),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-2,-1),(-3,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-1,-1),(-2,-1)),
(( 2, 0),( 1, 0),( 0, 0),( 0,-1),(-1,-1)),
(( 2, 1),( 1, 1),( 0, 1),( 0, 0),(-1, 0)),
(( 3, 1),( 2, 1),( 1, 1),( 1, 0),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 1,-2),( 1,-3)),
(( 0, 1),( 0, 0),( 0,-1),( 1,-1),( 1,-2)),
(( 0, 2),( 0, 1),( 0, 0),( 1, 0),( 1,-1)),
((-1, 2),(-1, 1),(-1, 0),( 0, 0),( 0,-1)),
((-1, 3),(-1, 2),(-1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 2, 1),( 3, 1)),
((-1, 0),( 0, 0),( 1, 0),( 1, 1),( 2, 1)),
((-2, 0),(-1, 0),( 0, 0),( 0, 1),( 1, 1)),
((-2,-1),(-1,-1),( 0,-1),( 0, 0),( 1, 0)),
((-3,-1),(-2,-1),(-1,-1),(-1, 0),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),(-1, 2),(-1, 3)),
(( 0,-1),( 0, 0),( 0, 1),(-1, 1),(-1, 2)),
(( 0,-2),( 0,-1),( 0, 0),(-1, 0),(-1, 1)),
(( 1,-2),( 1,-1),( 1, 0),( 0, 0),( 0, 1)),
(( 1,-3),( 1,-2),( 1,-1),( 0,-1),( 0, 0))
),
(
(( 0, 0),( 1, 1),( 0, 1),(-1, 1),( 0, 2)),
((-1,-1),( 0, 0),(-1, 0),(-2, 0),(-1, 1)),
(( 0,-1),( 1, 0),( 0, 0),(-1, 0),( 0, 1)),
(( 1,-1),( 2, 0),( 1, 0),( 0, 0),( 1, 1)),
(( 0,-2),( 1,-1),( 0,-1),(-1,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),( 0, 1),(-1, 1),(-1, 2),(-2, 2)),
(( 0,-1),( 0, 0),(-1, 0),(-1, 1),(-2, 1)),
(( 1,-1),( 1, 0),( 0, 0),( 0, 1),(-1, 1)),
(( 1,-2),( 1,-1),( 0,-1),( 0, 0),(-1, 0)),
(( 2,-2),( 2,-1),( 1,-1),( 1, 0),( 0, 0)),
(( 0, 0),(-1, 0),(-1,-1),(-2,-1),(-2,-2)),
(( 1, 0),( 0, 0),( 0,-1),(-1,-1),(-1,-2)),
(( 1, 1),( 0, 1),( 0, 0),(-1, 0),(-1,-1)),
(( 2, 1),( 1, 1),( 1, 0),( 0, 0),( 0,-1)),
(( 2, 2),( 1, 2),( 1, 1),( 0, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 1,-1),( 1,-2),( 2,-2)),
(( 0, 1),( 0, 0),( 1, 0),( 1,-1),( 2,-1)),
((-1, 1),(-1, 0),( 0, 0),( 0,-1),( 1,-1)),
((-1, 2),(-1, 1),( 0, 1),( 0, 0),( 1, 0)),
((-2, 2),(-2, 1),(-1, 1),(-1, 0),( 0, 0)),
(( 0, 0),( 1, 0),( 1, 1),( 2, 1),( 2, 2)),
((-1, 0),( 0, 0),( 0, 1),( 1, 1),( 1, 2)),
((-1,-1),( 0,-1),( 0, 0),( 1, 0),( 1, 1)),
((-2,-1),(-1,-1),(-1, 0),( 0, 0),( 0, 1)),
((-2,-2),(-1,-2),(-1,-1),( 0,-1),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0)),
(( 0, 0),( 0, 0),( 0, 0),( 0, 0),( 0, 0))
),
(
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0, 1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 1, 1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 2, 1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 3, 1)),
(( 0,-1),(-1,-1),(-2,-1),(-3,-1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),(-1, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),(-1, 1)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),(-1, 2)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),(-1, 3)),
(( 1, 0),( 1,-1),( 1,-2),( 1,-3),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 0,-1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),(-1,-1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-2,-1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-3,-1)),
(( 0, 1),( 1, 1),( 2, 1),( 3, 1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),( 1, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),( 1,-1)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),( 1,-2)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),( 1,-3)),
((-1, 0),(-1, 1),(-1, 2),(-1, 3),( 0, 0)),
(( 0, 0),(-1, 0),(-2, 0),(-3, 0),( 0,-1)),
(( 1, 0),( 0, 0),(-1, 0),(-2, 0),( 1,-1)),
(( 2, 0),( 1, 0),( 0, 0),(-1, 0),( 2,-1)),
(( 3, 0),( 2, 0),( 1, 0),( 0, 0),( 3,-1)),
(( 0, 1),(-1, 1),(-2, 1),(-3, 1),( 0, 0)),
(( 0, 0),( 0,-1),( 0,-2),( 0,-3),( 1, 0)),
(( 0, 1),( 0, 0),( 0,-1),( 0,-2),( 1, 1)),
(( 0, 2),( 0, 1),( 0, 0),( 0,-1),( 1, 2)),
(( 0, 3),( 0, 2),( 0, 1),( 0, 0),( 1, 3)),
((-1, 0),(-1,-1),(-1,-2),(-1,-3),( 0, 0)),
(( 0, 0),( 1, 0),( 2, 0),( 3, 0),( 0, 1)),
((-1, 0),( 0, 0),( 1, 0),( 2, 0),(-1, 1)),
((-2, 0),(-1, 0),( 0, 0),( 1, 0),(-2, 1)),
((-3, 0),(-2, 0),(-1, 0),( 0, 0),(-3, 1)),
(( 0,-1),( 1,-1),( 2,-1),( 3,-1),( 0, 0)),
(( 0, 0),( 0, 1),( 0, 2),( 0, 3),(-1, 0)),
(( 0,-1),( 0, 0),( 0, 1),( 0, 2),(-1,-1)),
(( 0,-2),( 0,-1),( 0, 0),( 0, 1),(-1,-2)),
(( 0,-3),( 0,-2),( 0,-1),( 0, 0),(-1,-3)),
(( 1, 0),( 1, 1),( 1, 2),( 1, 3),( 0, 0))
)
);
maxtime=1000000;
var
g:array[1..10,1..10] of char;
use:array['A'..'L'] of boolean;
time:longint;
procedure put(x0,y0:longint;ch:char;k:longint);
var
i:longint;
begin
for i:=1 to size[ch] do g[x0+map[ch,k,i,1],y0+map[ch,k,i,2]]:=ch;
end;
procedure reput(x0,y0:longint;ch:char;k:longint);
var
i:longint;
begin
for i:=1 to size[ch] do g[x0+map[ch,k,i,1],y0+map[ch,k,i,2]]:='.';
end;
function canput(x0,y0:longint;ch:char;k:longint):boolean;
var
i,tx,ty:longint;
begin
for i:=1 to size[ch] do begin
tx:=x0+map[ch,k,i,1];
ty:=y0+map[ch,k,i,2];
if (tx<1)or(tx>10)or(ty<1)or(ty>tx) then exit(false);
if g[tx,ty]<>'.' then exit(false);
end;
exit(true);
end;
procedure calc;
var
i,j:longint;
begin
for i:=1 to 10 do begin
for j:=1 to i do write(g[i,j]);
writeln;
end;
close(input);
close(output);
halt;
end;
procedure dfs(i:longint);
var
ch:char;
p:longint;
begin
inc(time);
if time>maxtime then begin
writeln('No'+#32+'solution');
close(input);
close(output);
halt;
end;
//writeln(i);
if i>55 then calc;
if g[path[i,1],path[i,2]]<>'.' then dfs(i+1)
else begin
for ch:='A' to 'L' do
if not use[ch] then
for p:=1 to coun[ch] do
if canput(path[i,1],path[i,2],ch,p) then begin
use[ch]:=true;
put(path[i,1],path[i,2],ch,p);
dfs(i+1);
reput(path[i,1],path[i,2],ch,p);
use[ch]:=false;
end
end;
end;
procedure main;
var
i,j:longint;
begin
assign(input,'zhzyx.in');
assign(output,'zhzyx.out');
reset(input);
rewrite(output);
fillchar(use,sizeof(use),false);
for i:=1 to 10 do begin
for j:=1 to i do begin
read(g[i,j]);
if g[i,j]<>'.' then use[g[i,j]]:=true;
end;
readln;
end;
time:=0;
dfs(1);
writeln('No'+#32+'solution');
close(input);
close(output);
end;
{
procedure debug;
var
screen,screen0:array[-10..10,-10..10] of char;
ch:char;
i,j,p,q:longint;
begin
assign(output,'debug.txt');
rewrite(output);
for p:=-10 to 10 do
for q:=-10 to 10 do begin
screen0[p,q]:='.';
if (p=0)or(q=0) then screen0[p,q]:='*';
end;
for ch:='A' to 'L' do
for i:=1 to coun[ch] do begin
screen:=screen0;
for j:=1 to size[ch] do
screen[map[ch,i,j,1],map[ch,i,j,2]]:=ch;
for p:=-10 to 10 do begin
for q:=-10 to 10 do
write(screen[p,q]);
writeln;
end;
writeln;
end;
close(input);
close(output);
end;
}
begin
main;
//debug;
end.