CF89C Chip Play

题目描述

有一个大小为 $n×m$ 的网格,格子上有若干个筹码。 每个筹码上都有一个箭头,指向上、下、左或右。 玩家可以选择一个筹码并开始行动。 以下是一次行动顺序: 1. 所选筹码被标记为当前筹码。 2. 检查当前筹码的箭头指向方向的同一行(或同一列)的筹码。如果至少有一个,则将最近的筹码标记为新的当前筹码。 3. 将先前的当前筹码从网格中移除。 4. 重复此过程。如果未找到新筹码,则将当前筹码从网格中移出,玩家的移动结束。 在移动结束后,玩家会获得分数,分数等于移除筹码的数量。 求一次行动之后可以获得的最大分数,以及获得该分数的初始筹码选择方案数。

输入格式

第一行包含两个整数 $n,m$ $(1\le n,1\le m,n×m\le 5000)$。 接下来 $n$ 行,每行包含 $m$ 个字符以描述网格。若字符为`.`,则表示这个格子为空。若字符为`LRUD`之一,则表示这个格子上有一个筹码,并且筹码上的箭头分别指向左、右、上或下。

输出格式

输出一行两个数字,分别表示一次行动之后可以获得的最大分数,以及获得该分数的方案数。

说明/提示

在第一个样例中,选择位于 $(3,3)$ 的初始筹码,即可获得最大分数,如图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF89C/564cfdc234dcf38266b456e2e5fec700d68e459e.png)