#scale. 2026提高组模拟赛11-T1 程老师的药材铺
2026提高组模拟赛11-T1 程老师的药材铺
时间限制:1000ms 内存限制:512MB
题目描述
程老师在老街上经营一间药材铺,柜台上摆着一架老式托盘天平,左右各一个铜盘。铺子里配药不用电子秤,全靠砝码。砝码只有两种规格:一种每只 克,一种每只 克,两种都备了满满一抽屉,想用多少只都有。药材包照例放在左盘,砝码则没有限制——左盘、右盘都可以放,放多少只也随意。天平平衡时,右盘砝码总克数减去左盘砝码总克数,正好等于药材的克数,这一味药就算称出来了。
两种砝码的来历不一样。 克砝码是前些年统一配发的新砝码,随便用,不收钱。 克砝码是铺子里传下来的老砝码,黄铜包角,每年都要送去校准保养,所以掌柜立了条规矩:每动用一只 克砝码,无论放在哪一盘,都记 元养护费,月底从柜上支出。学徒配药时得把这笔账算进去——同一包药,全用新砝码可能称不出来,全用老砝码又太破费,怎么搭配是一门手艺。
具体来说,称 克药时,学徒要决定四种数量:右盘放几只 克砝码、左盘放几只 克砝码、右盘放几只 克砝码、左盘放几只 克砝码,使得天平恰好平衡。每种砝码用的只数可以凑出各种不同的总克数:右盘的砝码把药材"压"出来,左盘的砝码则相当于帮药材"凑"克数。有时把老砝码垫在药材这边反而更划算,新学徒常常想不到这一层。
柜上配药有固定的流程:伙计照方抓药,粗分成小包后交到柜上,学徒复核时逐包过秤,克数与方子不符的当场增减,复核无误才包扎盖章。复核这一道工序全指着天平,一天下来要用几十次。两种砝码的克数也可能恰好相同——新砝码配发时并没有统一规格,个别铺子领到的正好和老砝码一般重,这种情况照样各算各的账:老砝码照收养护费,新砝码照旧免费。学徒选配砝码时只看一条:总费用最省。
程老师要给你的任务很直接:给定 、、、,算出称 克药所需的最少养护费。如果无论怎么搭配两种砝码都称不出 克,费用无从谈起,按铺子里的老规矩记 。柜上每天进出几十味药,这页账要写进流水册,差一钱一钱都对不上,所以答案必须分毫不差。
输入格式
一行四个整数 ,分别表示 克砝码的克数、 克砝码的克数、要称的药材克数、每只 克砝码的养护费。
输出格式
输出一行一个整数,表示称 克药所需的最少养护费;若无法称出,输出 。
数据范围
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 1 ~ 3 | 无 | |
| 4 ~ 8 | ||
| 9 ~ 12 | ||
| 13 ~ 20 |
- 对于全部数据,。
样例
样例 1
输入:
6 10 8 3
输出:
6
解释:一种称法是左盘放 只 克砝码垫着药材,右盘放 只 克砝码:右盘 克,左盘 克,恰好平衡,动用 只老砝码,费用 元。另一种称法是右盘放 只 克砝码,左盘放 只 克砝码:右盘 克,左盘 克,也平衡,但用了 只老砝码,费用 元。再试试别的搭配,费用都不会低于 元。
样例 2
输入:
6 10 7 5
输出:
-1
解释:两种砝码的克数都是 的倍数,左右盘怎么放,两盘之差凑来凑去都是 的倍数,而 是奇数,永远称不出来,按规矩记 。
样例 3
输入:
15 9 6 2
输出:
2
解释:右盘放 只 克砝码,左盘放 只 克砝码垫着药材:右盘 克,左盘 克,恰好平衡。只动用 只老砝码,费用 元。全用 克砝码凑不出 克,全用 克砝码也凑不出,所以 只老砝码已经不能再少。
- ID
- 675
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者