#P1913. Cocktails
Cocktails
描述
背景
著名的意大利鸡尾酒调酒师安杰洛()终于在罗马开设了他的新酒吧,并且即将让他的公司“安杰洛的鸡尾酒调配”(,简称 )在证券交易所上市。为了给证券交易所的投机者们提供一些有价值的信息,他想要发布一些关于他最常调配的鸡尾酒的统计数据。
问题
安杰洛收集了一些关于在他酒吧里一个典型夜晚所点鸡尾酒的数据。你的任务是计算出“十大最受欢迎的鸡尾酒”列表,该列表要包含鸡尾酒及其价格。这份列表将刊登在《著名鸡尾酒公报》()上,这是一份在意大利每日出版的专业鸡尾酒杂志。
十大鸡尾酒的排序标准主要是它们被调配的频率。如果有两种或更多种鸡尾酒被调配的次数相同,那么它们在安杰洛的食谱书中的位置将决定哪一种排在前面。十大鸡尾酒中的鸡尾酒必须至少被调配过一次。
当然,如果某个喝醉的顾客点了一种在安杰洛的食谱书中不存在的鸡尾酒,那么他会忽略这个订单。如果鸡尾酒在食谱书中,那么有一个小细节安杰洛忘了告诉你。他绝不会连续多次调配同一种鸡尾酒。所以,如果安杰洛接到了他刚刚调配过的同一种鸡尾酒的订单,那么他会转而调配他食谱书中的下一种鸡尾酒,或者,如果是他食谱书中的最后一种鸡尾酒,他会调配第一种鸡尾酒。
如果没有足够的原料来调配一种鸡尾酒,安杰洛也会做同样的事(也就是说,他会尝试调配他食谱书中的下一种鸡尾酒,必要时会翻到书的开头)。如果他的食谱书中没有足够的原料来调配任何一种鸡尾酒,他就会忽略当前的订单。
鸡尾酒的价格可以通过将其原料的加权价格乘以 再加上用于调配和服务的 里拉来计算。
输入 第一行包含场景的数量。场景从 开始隐式编号。对于每个场景,有三个表格:
-
安杰洛的食谱书。
-
一张原料表。
-
一张鸡尾酒订单表。
食谱书由以下部分组成:
一行,包含食谱书中鸡尾酒的总数。
<li>接着,对于每种鸡尾酒有两行:</li>第一行包含鸡尾酒的名称和不同原料的数量。
<li>第二行包含原料名称及其以厘升为单位的用量,用空格分隔。</li>原料表由以下部分组成:
一行,包含可用原料的数量。
<li>对于每种原料,有一行包含原料名称、该原料以厘升为单位的可用量以及每厘升的价格(单位:里拉)。</li>最后,鸡尾酒订单表由以下部分组成:
一行,包含订单的数量。
<li>对于每个订单,是鸡尾酒的名称。</li>鸡尾酒和原料的名称是只包含字母数字字符或下划线(无空格)的字符串。所有的值都是整数,且最大为 。
输出 对于输入中的每个场景 ,打印一行“Scenario top cocktails:”,后面跟着按排名 到 排序的十大列表。
对于列表中的每个条目,打印一行,包含排名、名称、鸡尾酒被调配的次数以及鸡尾酒的价格,每一项之间用一个空格分隔。
输入数据
1
3
White_Russian 3
Vodka 3 Coffe_Liqueur 2 Cream 1
Pina_Collada 4
White_Rum 4 Cream_of_Coconut 5 Pineapple_Juice 5 Cream 1
Cuba_Libre 3
White_Rum 4 Lemon_Juice 1 Cola 10
6
White_Rum 70 240
Vodka 70 120
Coffe_Liqueur 50 200
Cream_of_Coconut 20 150
Pineapple_Juice 100 40
Cream 40 20
4
Pina_Collada
Pina_Collada
White_Russian
Pina_Collada
输出数据
Scenario 1 top cocktails:
1 White_Russian 2 12340
2 Pina_Collada 2 15790