#P1568. 2023.05.10-暑期实习-第二题-解密
-
ID: 24
Type: Default
1000ms
256MiB
Tried: 214
Accepted: 27
Difficulty: 4
Uploaded By:
TaZi
Tags>模拟
2023.05.10-暑期实习-第二题-解密
题目内容
在全球恐怖主义危机下,一组间谍团队接收到了来自地下工作者的一串神秘代码。这组代码可以帮助他们访问恐怖分子的服务器,但是他们需要先解密代码才能使用它。代码是由数字0 - 9 组成的字符串 M,而解密过程需要一个秘钥数字 N 和一个运算符 k (加减乘中的一个)。
解密过程分为三个步骤:
第一步,团队成员需要使用秘钥数字 N 对 M 进行一系列 k 运算,并尝试截取其中的一段数字 x。如果 x 和 N 的运算结果是一个所有位数相同的数字,那么这段数字就有可能是真正的密码。例如,如果 x 为 111,N 为 2,k 为乘法,那么计算结果是 111×2=222,满足条件,因此 111 就是所寻找的目标密码串之一。
第二步,如果存在多种满足第一点条件的情况,那么团队成员需要选择计算结果最大的一种作为真正的密码。
第三步,团队成员们需要在 M (M的长度不超过100) 中找到长度为 3 到 12 位的密码串,并尝试使用秘钥数字 N 和运算符 k (k 为 + 或 − 或 ∗的一种)进行解密。由于秘钥数字 N 可能非常大,因此需要确保 N 不大于 9999999999。另外,在乘法场景下,团队成员们约定乘数最大为 3 位数,以避免数据过于庞大。 如果没有找到符合条件的密码串,则输出 −1,表示密码串不存在。
输入描述
输入第一行为加密后的字符串M
输入第二行为密钥数字N
输入第三行为运算符k
输出
满足计算结果所有位数相同,且计算结果最大的值。
样例1
输入
6833023887793076998810418710
2211
-
输出
9988
解释:通过计算, 8877 - 2211= 6666 而 9988 - 2211 = 7777,因为7777 > 6666,则目标密码串为9988。
样例2
输入
68846787793076946788418710
4210
+
输出
884678
解释:通过计算,符合条件有两个,884678 + 4210 = 888888,4678 + 4210 = 8888。则目标密码串为884678。
样例3
输入
139804444677899222
2
*
输出
4444
解释:作为乘法场景,乘数最大值为 3 位数,本用例乘数为 2 。按要求,4444 * 2 = 8888, 222 * 2 = 444,均符合基本条件,从中选择结果最大值则目标密码串是4444。
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 21ms
- Powered by Hydro v4.14.1 Community