#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 的反推条件。