#LQP20240306. 字母接龙

字母接龙

编程实现

有一个NNNN列的网格,网格里的每个格子都有一个字母,每个字母只能是 pythonp、y、t、h、o、n中的字母。一台机器人按照以下规则移动: 1、起始位置可以选择网格中任意一个格子,起始位置的字母不一定为pp; 2、每次只能向上下左右相邻的任意一个格子移动一格,并且经过的格子不能再次经过; 3、每次移动的格子中的字母必须按照以下环形的顺序,如下图所示:

image

例如:当前字母为tt,那么移动的下一个格子中的字母必须为hh

给定NNNN列的网格,请计算机器人最多可以经过多少个字母。

例如:N=4N = 4, 4444列的网格中的字母如左图,可经过最多字母的移动路径如右图:

image

以第三行第二列的hh作为起始位置,按照honpythh→o→n→p→y→t→h 的顺序移动,机器人经过的字母最多,可以经过77个字母。

输入描述

第一行输入一个整数N(2N50)N(2\le N\le 50),表示网格的行数和列数 接下来输入 NN行,每行NN个字母,每个字母只能是pythonp、y、t、h、o、n中的字母,字母之间以一个空格隔开

输出描述

输出一个整数,表示机器人最多可以经过多少个字母

样例

输入样例 #1

4
y n p p 
t o y t  
n h p h 
n h o t

输出样例 #1

7