P16806 [蓝桥杯 2026 国 Python A] 糖分极限

题目描述

程序员小蓝要在今晚重构一个复杂的项目。由于工作强度极高,他需要通过摄入糖分来补充能量,以维持大脑的高速运转。 然而,根据年初体检的报告,小蓝身体的糖分耐受极限为 $N$ 克。一旦体内的糖分超过这个界限,他就会因为血糖过高瞬间昏睡。 起初,小蓝体内的糖分为 $0$ 克。 公司有两种无限供应的甜品: 1. 甜甜圈:每吃一个,体内的糖分增加 $a$ 克。 2. 冰可乐:每喝一罐,体内的糖分增加 $b$ 克。 为了能够安全地摄入更多能量,小蓝在整个重构过程中,可以进行一次开合跳来消耗糖分(最多进行一次),这会立即使他当前体内的糖分减少一半。如果减半后的值不是整数,则直接舍弃小数部分(即向下取整,例如 $5$ 克减半后变为 $2$ 克)。 整个操作过程中,任意时刻小蓝体内的糖分都不得超过耐受极限 $N$ 克。 现在请你帮小蓝计算,在满足上述安全限制的前提下,他最多能让自己体内的糖分达到多少克?

输入格式

输入一行,包含三个用空格隔开的正整数 $N$、$a$ 和 $b$,分别表示小蓝身体的糖分耐受极限、食用一个甜甜圈所增加的糖分以及饮用一罐冰可乐所增加的糖分(单位:克)。

输出格式

输出一个整数,表示小蓝在安全范围内能够达到的最大糖分含量(单位:克)。

说明/提示

### 【样例说明】 小蓝可以进行如下操作: 1. 吃一个甜甜圈,体内糖分达到 $5$ 克。 2. 做一次开合跳,体内糖分瞬间减半,变为 $2$ 克。 3. 喝一罐冰可乐,体内糖分增加 $6$ 克,达到 $8$ 克。 此时正好达到耐受极限 $8$,无法再进一步提高,因此输出 $8$。 ### 【评测用例规模与约定】 对于 $30\%$ 的评测用例,$1 \le N \le 500$; 对于所有评测用例,$1 \le N \le 10^6$, $1 \le a, b \le N$。