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)$ 的初始筹码,即可获得最大分数,如图所示。
