#1408. [CZOI2025 C] 拖拉机

[CZOI2025 C] 拖拉机

题目描述

欢乐谷是企鹅公司开发的一个棋牌类益智游戏平台,玩家第一次进平台时,企鹅公司会发给每个玩家一定数量的欢乐豆,欢乐豆是企鹅公司最常用的道具之一,可用来玩平台上的各种游戏,属于一种游戏中的虚拟货币。

欢乐谷既有围棋、象棋、桥牌等烧脑游戏,也有 8080 分升级(俗称拖拉机)这种广受欢迎的雅俗共赏的经典扑克游戏,该游戏由两副牌四个人玩,分为两个阵营,11 号玩家和 33 号玩家为一个阵营,22 号玩家和 44 号玩家则组成另一个阵营。发牌逆时针进行,牌的大小区分简单,主牌大于副牌,主牌中大小王最大。出牌时需按照规则出对子或拖拉机等,尽量出大牌得分。庄家需尽最大努力保住底牌,如果最后被撬底则得分翻番,具体翻几番要看撬底是单张、对子、拖拉机。玩家需注意对手的牌,尽量让对手得分不超过 8080 分。

8080 分升级有一套复杂的结算规则,首先根据出牌中拖拉机的出现次数、得分情况和撬底番数,得出最终的应胜豆和应输豆,应胜豆等于应输豆。一局开始前四位玩家的欢乐豆数量是已知的,假设 11 号玩家和 33 号玩家取得胜利,应胜豆为 180 欢乐豆,则一局升级下来正常情况下 11 号玩家和 33 号玩家的欢乐豆都将增加 180180 颗,22 号玩家和 44 号玩家的欢乐豆都将减少 180180 颗,但实际情况往往不会这么理想,如果 22 号玩家欢乐豆不足 180180 颗,则 22 号玩家输光所有欢乐豆,当一家的欢乐豆变成 00 后就不可能再输了。11 号玩家和 33 号玩家平分赢得的欢乐豆,前提是开局前的欢乐豆的数量要不小于赢得的欢乐豆总数的一半。具体的结算规则如下:

  • 假设四位玩家游戏开始前的欢乐豆数量用 A,B,C,DA,B,C,D 表示,应输豆用 EE 表示,并且胜方为 11 号玩家和 33 号玩家,min\min 函数为求两个数的最小值的函数,如 min(3,5)=3\min(3,5)=3
  1. 计算输方理论上的总输豆 FF,本条规则中的输豆均指理论上的输豆的简称,F=2号玩家输豆+4号玩家输豆F=2\texttt{\,\small号玩家输豆} +4\texttt{\,\small号玩家输豆},其中 2号玩家输豆=min(B,E)2\texttt{\,\small号玩家输豆}=\min(B,E)4号玩家输豆=min(D,E)4\texttt{\,\small号玩家输豆}=\min(D,E)
  2. 计算胜方最终胜豆,假设 FF 是偶数,则 $1\texttt{\,\small号玩家最终胜豆}=\min(A,\frac F2),3\texttt{\,\small号玩家最终胜豆}=\min(C,\frac F2)$。
  3. 输豆返还,如果 min(A,F2)+min(C,F2)<F\min(A,\frac F2)+\min(C,\frac F2)<F,则胜方并没有瓜分完输方理论上的总输豆,此时要把胜方瓜分剩下的欢乐豆返还给输家,返还规则为先返还给输方中输得多的一方,直到返还完剩下的全部欢乐豆或两家输方输的欢乐豆一样多为止,做完这一步后如果还有欢乐豆剩下则将剩下的欢乐豆平分给两家输方。具体细节见样例 33 的解释。

现在企鹅公司找到你,要你写一个 8080 分升级的结算程序。为了简单起见,假设胜方永远是 11 号玩家和 33 号玩家。

输入格式

输入数据仅有一行包含 55 个用空格隔开的正整数,分别表示 A,B,C,D,EA,B,C,D,E55 个数保证都是 88 的倍数。

输出格式

输出数据仅有一行包含 44 个正整数,表示一局结束后四家的欢乐豆数量,相邻两数严格用一个空格隔开。

2400 2400 1000 2000 800
3200 1600 1800 1200
6400 4000 3600 20000 4800
10800 0 7200 16000
20000 6600 3200 9736 9600
28100 950 6400 4086

样例解释

样例 1\textbf 1 解释

四家开始前的欢乐豆数量均大于应输豆,应输豆为 800800,则根据规则 1122 不难算出,胜方每家增加 800800 欢乐豆,输方每家减少 800800 欢乐豆。

样例 2\textbf 2 解释

应输豆 E=4800E=4800,则根据规则 11,$2\texttt{\,\small号玩家输豆}=\min(B,E)=\min(4000,4800)=4000$,$4\texttt{\,\small号玩家输豆}=\min(D,E)=\min(20000,4800)=4800$,总输豆 $F=2\texttt{\,\small号玩家输豆}+4\texttt{\,\small号玩家输豆}=4000+4800=8800$,F2=4400\frac F2=4400

再根据规则 22 算出,$1\texttt{\,\small号玩家最终胜豆}=\min(A,\frac F2)=\min(6400,4400)=4400,3\texttt{\,\small号玩家最终胜豆}=\min(C,\frac F2)=\min(3600,4800)=3600$。

胜方总共赢得 80008000 欢乐豆,少于总输豆,此时要把余下的 800800 欢乐豆返还输家,根据规则 33:由于 44 号玩家输得多,则先返还给 44 号玩家,恰好把 800800 欢乐豆全部返还给 44 号玩家,此时两家输方输得一样多,返还结束,最终 11 号玩家欢乐豆增加 4400440033 号玩家欢乐豆增加 36003600,两家输方各减少 40004000 欢乐豆。

样例 3\textbf 3 解释

应输豆 E=9600E=9600,则根据规则 11,$2\texttt{\,\small号玩家输豆}=\min(B,E)=\min(6600,9600)=6600,4\texttt{\,\small号玩家输豆}=\min(D,E)=\min(9736,9600)=9600$,总输豆 $F=2\texttt{\,\small号玩家输豆}+4\texttt{\,\small号玩家输豆}=6600+9600=16200$,F2=8100\frac F2=8100

再根据规则 22 算出,$1\texttt{\,\small号玩家最终胜豆}=\min(A,\frac F2)=\min(20000,8100)=8100,3\texttt{\,\small号玩家最终胜豆}=\min(C,\frac F2)=\min(3200,8100)=3200$。

胜方总共赢得 1130011300 欢乐豆,少于总输豆,此时要把余下的 49004900 欢乐豆返还输家,根据规则 33:由于 44 号玩家输得多,则先返还给 44 号玩家 30003000 欢乐豆,此时两家输方输得一样多,尚余 19001900 欢乐豆,按规则 33 要平均返还给两家输方各 950950 欢乐豆,最终 11 号玩家欢乐豆增加 8100810033 号玩家欢乐豆增加 32003200,两家输方各减少 56505650 欢乐豆。

数据范围

本任务共有 1010 个数据。

对于所有数据:输入数据均不超过 10910^9,且每个数都是 88 的倍数。

测试点编号 特殊性质
11 A=B=C=D=EA=B=C=D=E
242\sim4 结算时不会用到规则 33
575\sim7 结算时会用到规则 33,但输豆只会返还一家
8108\sim10