#P1874. Trade on Verweggistan
Trade on Verweggistan
题目描述
自彼得·斯特伊弗桑特(Peter Stuyvesant)和亚伯·塔斯曼(Abel Tasman)的时代起,荷兰商人就周游世界进行商品买卖。曾经在弗韦吉斯坦(Verweggistan)有过一段短暂的贸易,但很快就结束了。读完这个故事后,你就会明白原因。
那时,弗韦吉斯坦非常受欢迎,因为它是世界上唯一一个能生产"普鲁尔"(prul)的地方。弗韦吉斯坦贸易的终结也意味着普鲁尔(或荷兰语复数形式"prullen")贸易的终结,如今很少有人知道普鲁尔到底是什么。
普鲁尔是在工场中制造的。每当一个普鲁尔制作完成,它会被装入一个盒子,然后放在之前生产的普鲁尔堆的顶部。每个盒子的侧面都标有价格。价格取决于制造普鲁尔所需的时间。如果一切顺利,一个普鲁尔的成本可能是一到两弗罗林,但在糟糕的日子里,价格可能轻松涨到15弗罗林甚至更高。这与质量无关;所有普鲁尔的价值都是相同的。
在那个年代,普鲁尔在荷兰的售价是每个10弗罗林。运输成本可以忽略不计,因为普鲁尔是作为额外货物搭载在原本就会航行的船只上。当荷兰商人前往弗韦吉斯坦时,他们的目的很明确:购买普鲁尔,在荷兰销售,并最大化利润。不幸的是,弗韦吉斯坦的普鲁尔交易方式使得这一目标比想象中更加复杂。
人们可能会认为商人只需购买最便宜的普鲁尔,而价格超过10弗罗林的普鲁尔会无人问津。但不幸的是,弗韦吉斯坦的所有工场都以特定的顺序出售普鲁尔。堆顶的盒子最先出售,然后是堆顶的第二个盒子,依此类推。因此,即使堆顶第五个盒子是最便宜的,商人也必须先购买堆顶的四个盒子才能得到它。
可以想象,这使得商人很难通过购买正确的普鲁尔组合来最大化利润。由于当时没有计算机辅助优化,他们很快就对普鲁尔贸易失去了兴趣。
在这个问题中,你将获得多个工场堆的描述。你需要计算商人在遵守上述限制的情况下,通过从这些堆中购买普鲁尔所能获得的最大利润。此外,你还需要确定为了实现这一利润,商人需要购买的普鲁尔数量。
输入格式
输入包含多个测试用例。每个测试用例的第一行是一个整数,表示工场的数量。
接下来是w行,每行描述一个普鲁尔堆。每行的第一个数字是堆中盒子的数量,随后是b个正整数,表示堆中普鲁尔的价格(单位为弗罗林),按从顶到底的顺序给出。
输入以结束,此时不应处理该测试用例。
输出格式
对于每个测试用例,输出测试用例编号(1, 2, ...)。然后输出两行:
- 第一行输出商人可以获得的最大利润。
- 第二行输出商人需要购买的普鲁尔数量以实现这一利润。如果数量不唯一,按升序输出所有可能的值。如果可能的值超过10个,只输出最小的10个。
测试用例之间用空行分隔。
输入数据 1
1
6 12 3 10 7 16 5
2
5 7 3 11 9 10
9 1 2 3 4 10 16 10 4 16
0
输出数据 1
Workyards 1
Maximum profit is 8.
Number of pruls to buy: 4
Workyards 2
Maximum profit is 40.
Number of pruls to buy: 6 7 8 9 10 12 13