题目 20360

算式密码锁

查看题解 ↗GitHub ↗如何评测
题号
20360
标签
比赛CSP-J
来源
2024 CSP-J 模拟赛 4 题

算式密码锁

lock

  • 时间限制:1.0 秒
  • 内存限制:512 MiB
  • 输入输出:标准输入输出

题目描述

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

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

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

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

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

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

输入格式

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

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

  • s1,s3,s5,s6s_1, s_3, s_5, s_6 中的字符为数字(0123456789);
  • s2s_2 中的字符为运算符(+-*/);
  • s4s_4 中的字符为关系符(>=<)。

输出格式

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

样例 1 输入

文本
2
23
*+
34
><
12
05

样例 1 输出

文本
2

样例 1 解释

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

文本
2+3<25
3*4>10

样例 2 输入

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

样例 2 输出

文本
5

数据范围

对于所有测试数据保证:n≤10n \le 10。

测试点编号 n≤n \le 特殊性质
1 ~ 2 1 AB
3 ~ 4 1 A
5 ~ 6 1 B
7 ~ 9 1 无
10 ~ 11 2 AB
12 ~ 13 2 A
14 ~ 15 10 B
16 ~ 17 10 无
18 ~ 20 10 无

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

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

数据下载

题目 20360 的公开数据

正在读取文件列表…

常用命令

题目 20360 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。