密码锁

题目描述

噜噜买了一辆新自行车,还特地装了一把 “会出题的六转盘密码锁”。可惜噜噜总是记不住密码,于是他干脆自己改造了密码锁:让它每次转动后都能“拼”出很多条算式。噜噜决定用一个很特别的规则来选密码——

选择一种转盘对齐方式,使得从不同角度读到的 nn 条算式里,成立的算式数量尽可能多。

这把密码锁共有 6 个转盘,每个转盘上均匀刻着 nn 个字符。转盘可以任意旋转,当你固定好 6 个转盘的位置后,从同一方向依次读第 1n1\sim n 个位置,就会得到 nn 条形如:

$$\text{(一位数字)}\ \text{(运算符)}\ \text{(一位数字)}\ \text{(关系符)}\ \text{(两位数字)} $$

的算式。

六个转盘的字符类型如下:

  • 131、3 号转盘:每个位置是一个数字(0~9
  • 22 号转盘:每个位置是一个运算符(+ - * /)共 4 种
  • 44 号转盘:每个位置是一个关系符(> = <)共 3 种
  • 565、6 号转盘:每个位置是一个数字(0~9),两者拼成一个 两位数(允许前导零) 例如某一位置读到:2 + 3 < 25,就表示判断 2+32+32525 的大小关系是否满足 <。 判定规则:
  1. 允许前导零,含零也可视为正确,例如:1+1=022-2=00 都可能成立。
  2. 除法按数学意义的实数除法,不是整数除法。例如 9/4=02 视为 错误(因为 9/429/4\ne 2)。
  3. 除以 0 的式子一定 错误,例如 1/0=00 视为错误。 你的任务是:在任意旋转这 6 个转盘后,求“成立算式”的最大数量。

输入格式

  • 第一行一个正整数 nn,表示每个转盘上字符个数,同时也是最终算式条数。
  • 接下来 6 行,每行一个长度为 nn 的字符串 sis_i,表示第 ii 个转盘从起始位置开始按顺时针排列的字符顺序。其中:
    • s1,s3,s5,s6s_1, s_3, s_5, s_6 仅包含数字字符 0~9
    • s2s_2 仅包含运算符 + - * /
    • s4s_4 仅包含关系符 > = <

输出格式

输出一行,一个非负整数,表示任意旋转密码锁后,成立的算式数量的最大值。

输入输出样例 #1

2
23
*+
34
><
12
05
2

样例 1 解释

一种使得两条算式都成立的对齐方式为:

2+3<25
3*4>10

输入输出样例 #2

10
0123456789
+-*/+-+-*/
0123456789
=<=>=<=>=>
0123456789
0123456789
5

数据范围与提示

1n101 \le n \le 10

相关

在下列比赛中:

「果壳杯」 ROUND 33 (Div. 5)