luogu#P7183. [CRCI2008-2009] NOP

[CRCI2008-2009] NOP

题目描述

Mirko 购买了新的微处理器。

不幸的是,他发现为旧处理器编写的许多程序在新处理器上无法运行。

在深入了解这两种处理器说明书后,他发现了原因。

为了更快地工作,新处理器对程序的机器代码施加了某些约束,而这些约束在以前的模型中是不存在的。

处理器的机器代码由顺序执行的指令组成。 每个指令使用一个字节的存储器。

同样,指令可以具有 00 个或多个参数,每个参数都使用一个额外的内存字节。在机器代码中,参数紧随指令之后。

当设置为文本格式时,机器代码指令为大写字母,而参数为小写字母。 例如:

a5mSaQ.png

该程序由四个指令组成:第 11 个使用三个参数,第 22 个使用两个参数,第 33 个不使用,第四个使用四个参数。 该程序使用 1313 个字节的内存。

新的处理器模型以四字节的块为单位获取内存,因此每条指令必须从可被四整除的内存地址开始(内存中的第一个字节为地址 00)。

我们可以将 NOP(No Operation,即无操作)指令插入旧程序中,这些指令不执行任何操作。

a5ezVg.png

指令 AABBCCDD 现在位于内存位置 0044881212,这满足了处理器的约束。

请你编程求出最少需要插入的 NOP 数量。

输入格式

一行一个字符串 ss,表示旧处理器模型编写的程序的机器代码。

该程序将始终以 11 条指令开始,即机器码中的第一个大写字母。 如果一条指令在机器代码中多次出现,则它将始终使用相同数量的参数。

输出格式

一行一个正整数 ansans,表示最少需要插入的 NOP 数量。

Abcd 

0
EaEbFabG 

5
AbcbBccCDefgh 

4

提示

数据规模及约定

s|s| 为字符串 ss 的字符数,对于 100%100\% 的数据,1s2001\le |s| \le 200

说明