chess

chess

暂无测试数据。

Background

回忆落空了残年。

Description

pig 在下象棋的时候特别喜欢用马,他总是计算着自己的马还需要几步才能吃掉对方的帅,以及方案数的个数,当然 pig 很笨,所以他只能求助于你。
我们假设在 m*n 的棋盘上, pig 的马只能走 1*2 的格点,他的马一开始在 st,对方的帅在 ed。当然,我们不能忽视友军和敌军,所以如果落点被友军占有,那么就不能飞过去了;如果落点被敌军占有,那么 pig 认为自己这一步赚了,所以不计入总步数。 为了简化问题,我们的马在飞的时候不受到敌军限制。

Format

Input

第一行两个数 m,n 表示棋盘大小为 m * n。
接下来 m 行,每行 n 个数字, 0 表示格子为空,1 表示格子上有敌军,2 表示格子上有友军,3 表示马的位置,4 表示敌方的帅。

Output

两行。
第一行:一个数,最少情况下实际走的步数。如果没有方案存在,输出 -1。
第二行:一个数,达到最小值的方案总数,如果两个方案走的 空格 不同则认为这两个方案不同(详见样例)。这个数保证不超过内设 64 位整数(long long/int64)的大小。如果第一行是-1,不要输出此行。

Sample 1

Input

4 5
0 0 0 0 1
0 0 3 0 0
0 0 0 4 0
0 1 0 0 0

Output

0
1

Sample 2

Input

4 5
1 0 0 0 0
3 0 0 0 0
0 0 2 0 0
0 0 0 4 0

Output

2
3

Explanation to Sample 2

一共有 3 种方案。 X 代表实际走的步数
1 0 0 0 0 | 1 0 X 0 0 | 1 0 X 0 0
3 0 X 0 0 | 3 0 0 0 0 | 3 0 0 0 X
0 0 2 0 0 | 0 X 2 0 0 | 0 0 2 0 0
0 X 0 4 0 | 0 0 0 4 0 | 0 0 0 4 0

Limitation

对于 30%的数据,m,n<=5。
对于 100%的数据, m,n<=50。
1s, 256000KiB for each test case.

Hint

落在敌军的位置敌军就会被吃掉。不要想在两个位置来回跳跃。

Source

CDQZ TEST

信息

难度
(无)
分类
最短路图结构 | 搜索 点击显示
标签
递交数
0
已通过
0
通过率
?
上传者