QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 512 MB Points totaux : 100

#11757. 日本料理

Statistiques

Donald 上校经营着一家小型日本料理店。由于他是店里唯一的厨师,他负责烹饪顾客点的所有菜品。

基本上,他按照先来后到的原则处理订单。准备每道菜都需要一些规定的时间。由于顾客一次可以点多道菜,上校会从准备时间最长的菜开始烹饪。如果有多道菜的准备时间相同,他会按照餐厅菜单上列出的顺序来制作这些菜。(注意:顾客点菜的顺序与烹饪顺序无关。)当他完成某位顾客点的所有菜品后,会立即将菜品交给服务员并送达给顾客。上菜时间可以忽略不计。此后,他便准备处理下一份订单。

另一方面,在他为某人的订单烹饪期间,可能会有其他顾客前来点餐。为了提高效率,他决定尽可能将同种菜品放在一起烹饪。当他准备开始烹饪一道新菜时,他会查看截至当时已接受的订单(包括恰好在此时接受的订单,如果有的话),并统计他接下来要烹饪的同种菜品的数量。无论一次准备多少道菜,烹饪所需的时间都是一样的。遗憾的是,厨房的容量有限,因此有时无法一次性准备好所需数量的菜品。在这种情况下,他只会尽可能多地准备菜品。

你的任务是编写一个程序来模拟这家餐厅。给定菜单上的菜品列表以及顾客的订单及其接受时间,你的程序应输出每位顾客被上菜的时间。

输入格式

输入包含不超过 110 组数据。每组数据格式如下:

$N$ $M$ $Name_1$ $Limit_1$ $Time_1$ ... $Name_N$ $Limit_N$ $Time_N$ $T_1$ $K_1$ $Dish_{1,1}$ ... $Dish_{1,K_1}$ ... $T_M$ $K_M$ $Dish_{M,1}$ ... $Dish_{M,K_M}$

其中,$N$ ($1 \le N \le 20$) 和 $M$ ($1 \le M \le 100$) 分别表示菜单上的条目数和 Donald 将收到的订单数。每个 $Name_i$ 是菜单中第 $i$ 个条目的菜名,由最多 20 个字母组成。整数 $Limit_i$ ($1 \le Limit_i \le 10$) 是上校同时能烹饪该种菜品的最大数量。整数 $Time_i$ ($1 \le Time_i \le 1000$) 是准备第 $i$ 个条目的菜品(或多道菜品)所需的时间。整数 $T_j$ ($1 \le T_j \le 10^8$) 是第 $j$ 份订单被接受的时间。整数 $K_j$ ($1 \le K_j \le 10$) 是第 $j$ 份订单中的菜品数量。每个 $Dish_{j,k}$ 表示第 $j$ 份订单中的一道菜。

你可以假设订单中的每道菜都在菜单中列出,但请注意,每份订单可能包含多次出现的相同菜品。订单按 $T_j$ 升序给出,且没有两份订单在同一时间被接受。

输入以包含两个零的一行结束。这不属于数据组,因此不应处理。

输出格式

对于每组数据,你的程序应输出 $M$ 行。第 $i$ 行应包含一个整数,表示第 $i$ 份订单完成并上菜给顾客的时间。

在两组连续的数据之间打印一个空行。

样例

输入 1

5 4
Ramen 3 10
Chahan 5 5
Gyoza 5 10
Rice 1 1
Soup 1 1
5 2 Ramen Gyoza
10 6 Chahan Gyoza Soup Ramen Gyoza Rice
20 1 Chahan
25 1 Ramen
0 0

输出 1

25
42
40
35

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.