#B4056. [语言月赛 202411] 卡牌

[语言月赛 202411] 卡牌

题目描述

在西部荒野中,一位牛仔小 Z 初始时持有 xx 枚金币,它希望从商人手中购买卡牌来和自己的牛仔朋友们决斗。

每张卡牌有一个面额。卡牌的面额种类有 151\sim 5 共五种,面额为 ii 的卡牌需要 ii 枚金币购买。

商人正在售卖 nn 个卡包。一个卡包由 55 张卡牌组成。对于每个卡包,小 Z 只能购买其中的一张卡牌,并支付这张卡牌对应的金币数。当然,小 Z 也可以选择不购买。

对于商人售卖的 nn 个卡包,小 Z 将依次查看每个卡包中五张卡牌的面额,并购买他能买得起的面额最大的卡牌。如果手中剩余的金币不够支付当前卡包的任何一张卡牌,小 Z 则不会购买卡牌。

小 Z 沉浸在“买买买”的过程中,已经搞不清自己手上各种面额的卡牌有多少张,以及剩余多少枚金币,请你帮他整理答案吧!

输入格式

输入共 n+1n+1 行。

第一行两个整数 x,nx,n,分别表示初始时小 Z 持有的金币数和卡包数量。

接下来 nn 行,每行 55 个整数 a,b,c,d,ea,b,c,d,e,表示这个卡包中五张卡牌的面额。

输出格式

输出共 22 行。

第一行 55 个整数,第 ii 个整数表示小 Z 拥有的面值为 ii 的卡牌数量。

第二行 11 个整数,表示小 Z 剩余的金币数量

8 4
5 5 1 2 1
1 2 2 4 5
5 5 5 5 5
1 2 3 4 5

1 1 0 0 1
0

15 5
5 5 5 5 5
4 4 4 4 4
3 3 3 3 3
2 2 2 2 2
1 1 1 1 1

1 1 1 1 1
0

10 1
1 2 3 3 3

0 0 1 0 0
7

提示

样例 #1 解释

初始时,小 Z 有 88 枚金币。

  • 第一个卡包中,五张卡牌的面额分别为 5,5,1,2,15,5,1,2,1,小 Z 能买得起的面额最大的卡牌的面额为 55,所以小 Z 购买了一张面额为 55 的卡牌,金币剩余 33 枚。
  • 第二个卡包中,小 Z 能买得起的面额最大的卡牌的面额为 22,所以小 Z 购买了一张面额为 22 的卡牌,金币剩余 11 枚。
  • 第三个卡包中,小 Z 买不起任何一张卡牌,所以没有购买卡牌。
  • 第四个卡包中,小 Z 能买得起的面额最大的卡牌的面额为 11,所以小 Z 将其买下,剩余 00 枚金币。

最终小 Z 有三张卡牌,面额分别为 1,2,51,2,5,还剩 00 枚金币。

数据范围

对于所有数据,$1\le n\le 10000,0\le x\le 10000,1\le a,b,c,d,e\le 5$。

对于前 20%20\% 的数据,n=1n=1

对于前 40%40\% 的数据,a=b=c=d=ea=b=c=d=e

对于前 60%60\% 的数据,1n10,0x501\le n\le 10,0\le x\le 50

另有 10%10\% 的数据,x=0x=0