#ABC153D. Caracal vs Monster
Caracal vs Monster
题目描述
Caracal is fighting with a monster.
The health of the monster is .
Caracal can attack by choosing one monster. When a monster is attacked, depending on that monster's health, the following happens:
- If the monster's health is , it drops to .
- If the monster's health, , is greater than , that monster disappears. Then, two new monsters appear, each with the health of .
( denotes the greatest integer not exceeding .)
Caracal wins when the healths of all existing monsters become or below.
Find the minimum number of attacks Caracal needs to make before winning.
狞猫正在和一只怪物战斗。
怪物的 health 值是 。
狞猫可以选择一个怪物进行攻击。当怪物受到攻击时,根据怪物的健康状况,会发生以下情况:
- 如果怪物的生命值是 ,它的生命值会下降到 。
- 如果怪物的生命值 大于 ,则怪物消失。然后,会出现两个新的怪物,每个怪物的生命值都是 。
表示不超过 的最大整数)。
当所有现有怪物的健康值变为 或更低时,狞猫获胜。
求 Caracal 在获胜前最少需要攻击的次数。
输入格式
输入内容按以下格式标准输入:
输出格式
找出狞猫在获胜前需要发动的最少攻击次数。
样例 #1
样例输入 #1
2
样例输出 #1
3
样例 #2
样例输入 #2
4
样例输出 #2
7
样例 #3
样例输入 #3
1000000000000
样例输出 #3
1099511627775
说明
数据规模与约定
- 所有输入值均为整数。
样例 解释
当狞猫攻击初始怪物时,它消失了,同时出现了两个怪物,每个怪物的健康值都是 。
然后,狞猫可以攻击这些新怪物各一次,总共攻击三次即可获胜。