给定五个仅含字符 0 到 9 的字符串 a,b,c,d,e。在进制 x∈[2,10] 中,当且仅当五个串的每一位数字都小于 x 时,x 合法。若在该进制下 A+B=C(按进制 x 加法,值用十进制表示),则令 Sx 为把 d、e 按进制 x 解释后的十进制之和。所有满足条件的 Sx 若完全一致则输出该值,否则输出 baka;一个都不存在时也输出 baka。
算法:先求五个串中的最大数字 mx,合法进制下界为 max(2,mx+1)。对每个候选进制 x:逐位把串转成十进制(v←v⋅x+digit);若 A+B=C,计算 Sx=D+E。用变量记录首次出现的和,之后若出现不同的和则判定不唯一。
扫描结束:至少有一个进制通过且所有和相同则输出该和,否则输出 baka。
考古队发现五张只含数字字符的纸条,上面分别写着 a、b、c、d、e。它们本应满足同一未知进制 x(2≤x≤10)下的等式 a+b=c,其中加法在该进制下进行。
称 x 是合法进制,当且仅当这五个字符串中的每个字符在进制 x 下都是合法数字,即该字符代表的数值严格小于 x。
在所有同时满足「合法」且「a+b=c 成立」的进制 x 中,把 d 与 e 按进制 x 解释成十进制整数后相加。若所有这些进制得到的和完全相同,则输出该和;否则输出 baka。
保证每组数据至少存在一个 x(2≤x≤10),使得 a、b、c 在该进制下每位都合法且 a+b=c。并保证对任一满足条件的 x,五个数以及 d+e 的十进制值都落在 [0,231−1] 内。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册