luogu#P3982. 龙盘雪峰信息解析器

龙盘雪峰信息解析器

题目背景

薄雾笼罩,远方的雪峰无限迷人,感慨之间,阴影将至。

与真程海洋毗邻的龙盘雪山与我们保持着联系,但是龙盘雪山的通讯员常常把信息进行奇怪的加密,然后要我们来破译,很是谨慎。但是,久而久之,我们的通讯员不耐烦了,差点掀桌子砸凳子不干了。所以我们想做一个信息解析器,就是这样。

题目描述

龙盘雪峰传来的信息都加密成了复杂的代码,我们需要你来做一个程序,按照解析规则解密这些代码,翻译成文字信息,以下是其解析规则:

该代码应为一连串的二进制码(只存在0 0 1 1 ,做加法时满2 2 1 1 ,每个0 0 1 1 占一个字符),每八个字符为一单元(这也是规则)。

每个单元都有这样的规则:一、若【前三个字符】为101 101 时表示需要转换为字母AZ A-Z ,字母A A 代码为10100000 10100000 ,字母C C 10100010 10100010 26 26 大写字母以字母表顺序按照这种规律顺序排列,分别对应一个二进制代码。二、若【前三个字符】为111 111 ,则该单元翻译为空格。三、若【第一个字符】为0 0 ,则该单元表示一个数,待定与下一个单元所表示的数做加法。加法过程中,这两个单元应转换为十进制,然后除以2 2 舍弃余数才相加,加法结束后,这两个单元做加法得到的结果即为这两个单元的翻译结果(翻译结果用十进制表示,这两个单元就都翻译完毕了,详见样例3 3 )。

由于保险,龙盘雪峰经常发送【假代码】,而假代码则不存在上述规则,如果是假代码,输出Error Error

输入格式

输入仅一行,包含一串连续的代码(长度不超过171111 171111 个字符),中间不会出现空格,保证不出现空代码。

输出格式

输出仅一行,包含一个字符串,是二进制代码按照上述规则翻译后的文字信息。

若该二进制代码中存在假代码信息,则输出Error Error

1010000011100000101011111010100010100110
A PIG
1
Error
0000001000000010000000100000001010100000
22A
IOIOOOOI
Error

提示

样例一说明:

10100000 10100000 代表A A ,下一个单元开头为111 111 ,那么翻译为空格,再下一个单元开头为101 101 ,后接01111 01111 ,比A A 多了20+21+22+23=15 2^0+2^1+2^2+2^3=15 ,那么代表的就是P P 了,以此类推,最后翻译为A  PIG A\;PIG

注意:

对于规则一的解释:26 26 个大写字母按照字母表的顺序排列,以A=10100000 A=10100000 开始,往后的每一个字母的二进制码的值都比前面一个字母的二进制码的值多1 1 (注意满二进一);

此题目有误解题意的现象,请一定要看清楚题目,搞清楚逻辑关系,注意细节!