A1184 | [COCI-2008_2009-regional]#4 NOP
来源COCI
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
Mirko purchased a new microprocessor. Unfortunately, he soon learned that many of his programs that he wrote for his old processor didn't work on the new processor.
Deep inside the technical documentation for both processors, he found an explanation. In order to work faster, the new processor imposes certain constraints on the machine code of programs, constraints that never existed on the previous model.
The machine code of a processor consists of instructions that are executed sequentially. Each instruction uses a byte of memory. Also, instructions can have zero or more parameters, each of which uses an additional byte of memory. In machine code, parameters immediately follow an instruction.
When formatted as text, machine code instructions are uppercase letters, while parameters are lowercase letters. For example:
A b c b B c c C D e f g h This program consists of four instructions; the first takes three parameters, the second two, the third none and the fourth takes four parameters. The program uses 13 bytes of memory.
The new processor model fetches memory in four-byte chunks so each instruction must start at a memory address that is divisible by four (the first byte in memory is address 0). To achieve that, we can insert NOP (no operation) instructions into the old program, instructions that do nothing and are not limited to memory locations divisible by four. The above program, adapted to run on the new processor, can look like this:
A b c b B c c NOP C NOP NOP NOP D e f g h The instructions A, B, C and D are now at memory locations 0, 4, 8 and 12, which satisfies the processor's constraints.
Write a program that determines the smallest number of NOP instructions that need to be inserted for the given program to work on the new processor model.
Deep inside the technical documentation for both processors, he found an explanation. In order to work faster, the new processor imposes certain constraints on the machine code of programs, constraints that never existed on the previous model.
The machine code of a processor consists of instructions that are executed sequentially. Each instruction uses a byte of memory. Also, instructions can have zero or more parameters, each of which uses an additional byte of memory. In machine code, parameters immediately follow an instruction.
When formatted as text, machine code instructions are uppercase letters, while parameters are lowercase letters. For example:
A b c b B c c C D e f g h This program consists of four instructions; the first takes three parameters, the second two, the third none and the fourth takes four parameters. The program uses 13 bytes of memory.
The new processor model fetches memory in four-byte chunks so each instruction must start at a memory address that is divisible by four (the first byte in memory is address 0). To achieve that, we can insert NOP (no operation) instructions into the old program, instructions that do nothing and are not limited to memory locations divisible by four. The above program, adapted to run on the new processor, can look like this:
A b c b B c c NOP C NOP NOP NOP D e f g h The instructions A, B, C and D are now at memory locations 0, 4, 8 and 12, which satisfies the processor's constraints.
Write a program that determines the smallest number of NOP instructions that need to be inserted for the given program to work on the new processor model.
输入格式
The input contains the machine code of the program written for the old processor model. The program will consist of at most 200 English letters.
The program will always start in an instruction i.e. the first letter in the machine code will be uppercase.
If an instruction appears more than once in the machine code, it will always take the same number of parameters.
The program will always start in an instruction i.e. the first letter in the machine code will be uppercase.
If an instruction appears more than once in the machine code, it will always take the same number of parameters.
输出格式
Output the smallest number of NOP instructions needed to adapt the program for the new processor.
输入输出样例
输入 #1
Abcd
输出 #1
0
输入 #2
EaEbFabG
输出 #2
5
输入 #3
AbcbBccCDefgh
输出 #3
4
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted