QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100
[0]

# 8632. 算式密码锁

Statistics

题目描述

小C给他的自行车装了一把密码锁,但他经常苦恼于忘记密码。不过小C虽然记忆力不太好,但拥有超乎常人的计算能力,于是他给自己量身打造了一把特殊的密码锁。

这把密码锁共有6位,与常规的密码锁相同,每一位是一个转盘,可以自由转动。但每个转盘上不再是0~9的数字简单排列,而是一些特定的数字或符号:

  • 第1、3、5、6个转盘上,每个位置是一个数字;
  • 第2个转盘上,每个位置是一个运算符,共有加(+)、减(-)、乘(*)、除(/)4种可能;
  • 第4个转盘上,每个位置是一个关系符,共有大于(>)、等于(=)、小于(<)3种可能。

每个转盘上的数字或字符均有 n 个。这样,任意转动转盘后,从不同角度看去,这些数字和字符可以组成 n 个不同的算式。对于任意转动转盘后的结果而言,这 n 个算式有的正确有的错误,而经过小C的精心设计,这把密码锁刚好可以在转动到正确的算式个数最多时打开锁。

凭借小C的计算能力,可以现场推算出如何转动转盘才能使正确的算式个数尽可能多。现在你好奇地盯上了他这把密码锁,想要尝试将其打开,但你苦于计算能力不够,所以打算写个程序来帮忙。

需要注意的是,式子中有前导0也可被视为正确,如 1+1=02, 2-2=00 等;除法是数学意义上的除法而非计算机中的整数除法,如 9/4=02 这样的式子被视为错误;除以0的式子将直接被视为错误,如 1/0=00 等。

输入格式

从标准输入读入数据。

1 行,一个正整数 n,表示密码锁的算式个数,同时也是一个转盘上的数字或符号个数。

接下来 6 行,每行一个长度为 n 的字符串 si,表示从左往右第 i 个转盘上的数字或符号(从转盘的初始位置起按顺序描述)。其中:

  • s1,s3,s5,s6 中的字符为数字( 0123456789 );
  • s2 中的字符为运算符( +-*/ );
  • s4 中的字符为关系符( >=< )。

输出格式

输出到标准输出。

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

样例

输入

2
23
*+
34
><
12
05

输出

2

解释

一种转动转盘使得两个算式均成立的方案为:

2+3<25
3*4>10

样例

输入

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

输出

5

数据范围

对于所有测试数据保证:n10

测试点编号 n 特殊性质
12 1 AB
34 A
56 B
79
1011 2 AB
1213 10
1415 A
1617 B
1820

“特殊性质A”为:s2 中仅包含字符 +

“特殊性质B”为:s4 中仅包含字符 =