#1515. 小鸟的金币崩盘
小鸟的金币崩盘
C. 小鸟的金币崩盘
传统题 | 1000ms | 256MiB
题目描述
小鸟是班里最"卷"的玩家。他不像小方 / 小块那样只算自己经济,他还要和对手博弈——花钱提升对手强度,但对手强度越高,扣血也越狠。
小鸟把这套规则简化成"每回合结算一次":
- 战斗扣血:如果对手强度 S > 自己连胜数 W,每回合金币 -
(S - W) × 2(最少扣到 0)。 - 商店购买:金币 ≥ 30 时,必须强制花 30 金币,把对手强度 S + 1(不是可选)。
- 其它规则同 B 题:基础 + 利息 + 连胜奖励 + 连败惩罚 + 维护连胜。
每回合动作顺序:
1. 收入:N + 5 + min(5, N//10)
2. 连胜奖励:if W ≥ 6: N += 2
3. 连败惩罚:if W ≤ 3: N = max(0, N - N//10)
4. 战斗扣血:if S > W: N = max(0, N - (S-W)*2)
5. 商店强制购买:if N ≥ 30: N -= 30, S += 1(可触发多次 if N - 30 ≥ 30)
6. 维护连胜:W = min(10, W + 1)
7. 封顶:N = min(50, N)
注意:
- 商店购买是"强制循环":买完后如果还 ≥ 30,继续买,没有上限。
- 扣血 / 惩罚都是地板除,扣到 0 就停,不会变负。
- 破产检测:每回合动作结束后,如果 N = 0 且 S > W,游戏结束,输出破产。
小鸟想知道:按这个规则连续 K 回合,会不会破产?如果不破产,最终的金币、连胜、对手强度是多少?
输入格式
一行四个整数 N W S K:
N:起始金币(0 ≤ N ≤ 50)W:起始连胜数(0 ≤ W ≤ 10)S:起始对手强度(0 ≤ S ≤ 10)K:模拟回合数(1 ≤ K ≤ 100)
输出格式
- 如果破产:输出
-T,T 是破产的那一回合(第 1 回合就破产就输出 -1) - 如果没破产:输出最终的金币数、连胜数、对手强度(用空格分隔,三个数)
样例
输入:
40 4 8 5
输出:
20 9 9
解释(每回合动作):
- 第 1 回合:40 + 5 + 4 = 49(封顶前),W=4<6 无奖励,W=4>3 无惩罚,S=8>W=4 扣 (8-4)*2=8 → N=41;N=41≥30 买 1 次 → N=11, S=9;W=5
- 第 2 回合:11 + 5 + 1(11//10)=17,W=5 无奖无罚,S=9>W=5 扣 8 → N=9;N=9<30 不买;W=6
- 第 3 回合:9 + 5 + 0 = 14,W=6≥6 奖励+2 → 16;W=6>3 无罚;S=9>W=6 扣 6 → N=10;N=10<30 不买;W=7
- 第 4 回合:10 + 5 + 1 = 16,奖励 +2 = 18;S=9>W=7 扣 4 → N=14;N=14<30 不买;W=8
- 第 5 回合:14 + 5 + 1 = 20,奖励 +2 = 22;S=9>W=8 扣 2 → N=20;N=20<30 不买;W=9;封顶 min(50, 20) = 20
最终:N=20, W=9, S=9。
提示
这题的金矿是 "三方反馈 + 雪崩效应":
- 金币 ↔ 对手强度:金币买 S → S 涨 → 扣血更多 → 金币降
- 连胜 ↔ 对手强度:S > W 触发扣血 → 金币降 → 触发连败惩罚
- 金币 ↔ 连胜:W 低 → 惩罚 → 金币降
商店的两难:买 S 是投资但要花 30 金币,什么时候买决定了崩不崩。这就是崩溃型平衡。
金矿引导:
N=50, W=0, S=10起步:第 1 回合买 S → 50-30=20, S=11…… 雪崩N=50, W=10, S=0起步:连胜奖励立即生效 → 金币永远封顶 → 买 S 也不怕
崩溃临界点:当 S 增长速度 > 金币回血速度时,系统必崩。让学生改"商店价格 30 → 60"看会发生什么——这就是 L4 的反推条件。