#L0355. 寄存器
寄存器
题目背景
在死磕计算机系统底层机制的过程中,小符同学对汇编语言的运行产生了浓厚兴趣。他设计了一个简单的虚拟机,但由于指令解析器的缺陷,他需要暴力试探寄存器的初始状态,来让一段特定的校验码通过。
题目描述
该虚拟机有三个核心寄存器:RAX, RBX, RCX。
已知这三个寄存器在初始化时,必定分别被赋予了 到 之间的一个正整数(三个寄存器的值可以相同)。
虚拟机在启动时会执行一段校验公式,计算结果 的规则如下:
现在给定目标校验结果 以及寄存器的取值上限 ,请你计算出有多少种不同的寄存器初始赋值方案,能够使虚拟机的计算结果恰好等于 ?
输入格式
一行,包含两个用空格分隔的正整数 和 ,分别表示目标校验结果和寄存器取值上限。
输出格式
一个整数,表示满足 的方案总数。
数据范围
对于 100% 的数据:
样例
10 5
7
样例解释
,说明寄存器的值只能在 到 之间。目标 。枚举可得以下 7 种方案满足 : RAX=1, RBX=5, RCX=5 () RAX=2, RBX=3, RCX=4 () RAX=2, RBX=4, RCX=2 () RAX=3, RBX=2, RCX=4 () RAX=3, RBX=3, RCX=1 () RAX=4, RBX=2, RCX=2 () RAX=5, RBX=1, RCX=5 ()