#P1568. 2023.05.10-暑期实习-第二题-解密

2023.05.10-暑期实习-第二题-解密

题目内容

在全球恐怖主义危机下,一组间谍团队接收到了来自地下工作者的一串神秘代码。这组代码可以帮助他们访问恐怖分子的服务器,但是他们需要先解密代码才能使用它。代码是由数字00 - 99 组成的字符串 MM,而解密过程需要一个秘钥数字 NN 和一个运算符 kk (加减乘中的一个)。

解密过程分为三个步骤:

第一步,团队成员需要使用秘钥数字 NNMM 进行一系列 kk 运算,并尝试截取其中的一段数字 xx。如果 xxNN 的运算结果是一个所有位数相同的数字,那么这段数字就有可能是真正的密码。例如,如果 xx111111NN22kk 为乘法,那么计算结果是 111×2=222111 \times 2 = 222,满足条件,因此 111111 就是所寻找的目标密码串之一。

第二步,如果存在多种满足第一点条件的情况,那么团队成员需要选择计算结果最大的一种作为真正的密码。

第三步,团队成员们需要在 MMMM的长度不超过100) 中找到长度为 331212 位的密码串,并尝试使用秘钥数字 NN 和运算符 kkkk++-*的一种)进行解密。由于秘钥数字 NN 可能非常大,因此需要确保 NN 不大于 99999999999999999999。另外,在乘法场景下,团队成员们约定乘数最大为 33 位数,以避免数据过于庞大。 如果没有找到符合条件的密码串,则输出 1-1,表示密码串不存在。

输入描述

输入第一行为加密后的字符串MM

输入第二行为密钥数字NN

输入第三行为运算符kk

输出

满足计算结果所有位数相同,且计算结果最大的值。

样例1

输入

6833023887793076998810418710
2211
-

输出

9988

解释:通过计算, 88778877 - 22112211= 6666666699889988 - 22112211 = 77777777,因为77777777 > 66666666,则目标密码串为99889988

样例2

输入

68846787793076946788418710
4210
+

输出

884678

解释:通过计算,符合条件有两个,884678884678 + 42104210 = 88888888888846784678 + 42104210 = 88888888。则目标密码串为884678884678

样例3

输入

139804444677899222
2
*

输出

4444

解释:作为乘法场景,乘数最大值为 33 位数,本用例乘数为 22 。按要求,44444444 * 22 = 88888888222222 * 22 = 444444,均符合基本条件,从中选择结果最大值则目标密码串是44444444