SP15360 WRLUNCH - World Record Lunch

题目描述

一群人想要打破世界纪录,看能否同时有最多人数一起用餐。为了实现这个目标,他们在国家最大的桥上摆设餐桌,并决定按照字母「S」的形状来安排桌子。 这个桌子布局可以用四个整数来描述:**NH**、**NV**、**H** 和 **V**。其中,**NH** 和 **NV** 分别代表行数和列数。**H** 和 **V** 分别表示每行和每列的桌子数量。在这个布局中,桌子从右上角按顺序编号,从 1 号桌开始。例如,下面的图展示了几种可能的布局: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP15360/d95a34e854b42b59acda21c9382f33c0cc49cc85.png) 预计会有许多人来参与,组织者需要为这些人安排用餐座位。每个团体需要一定数量的桌子,并且这些桌子不能与其他团体共享。此外,他们希望所有桌子是连在一起的,而不是分布在不同的行或列中,即希望在同一行或同一列获得一组连续的桌子。如果无法满足这一条件,他们宁愿选择别的地方就餐。另外,团体也希望有一些隐私,即他们周围的桌子是空的:不希望在第一张桌子之前或最后一张桌子之后立即有人坐。若能满足这个条件,我们称这个位置为「私密」的。 每当一个团体到达时,组织者必须基于当前桌子的占用情况来决定这个团体的位置,而不考虑将来可能到来的其他团体。因为一个团体会坐在连续的桌子上,所以团体的位置可以通过第一个桌子的编号来定义。因此,当一个团体到来时,组织方希望实现以下目标: - 如果有合适的私密位置,就选择能保证隐私的最小编号; - 如果无法保证隐私,但有足够空间,就选择能容纳整个团体的最小编号; - 如果没有一个完整的行或列能容纳这个团体,那就只能让该团体离开。 举个例子:假设一个布局的参数为 **NH**=3,**NV**=2,**H**=5,**V**=3(如上图所示的第一个布局)。当需要 5、2、3、5、4 和 2 张桌子的团体按此顺序到达时,情况如下: - 初始时所有桌子都空着。 - 第 1 个团体需要 5 张桌子,被安排在编号 1 的位置。 - 第 2 个团体需要 2 张桌子,被安排在编号 7 的位置。 - 第 3 个团体需要 3 张桌子,被安排在编号 11 的位置。 - 第 4 个团体需要 5 张桌子,但没有可用位置。 - 第 5 个团体需要 4 张桌子,被安排在编号 14 的位置(没有隐私)。 - 第 6 个团体需要 2 张桌子,被安排在编号 9 的位置(没有隐私)。 你能帮助组织者完成这些安排吗?

输入格式

第一行包含五个用空格分隔的整数 **NH NV H V N**。其中 **NH** 和 **NV**分别表示桌子布局的行数和列数。**H** 和 **V** 分别代表每行和每列的桌子数量。**N** 表示前来用餐的团体数量。 接下来的 **N** 行,每行表示第 _i_ 个团体所需要的桌子数量 **G $ _{i} $**,这些行按照团体到达的顺序排列。

输出格式

输出应包含恰好 **N** 行,每行表示相应团体的座位编号。如果找到了合适的位置,输出一个整数,表示团体第一个桌子的编号。如果没有可用位置,输出字符串 "no"(不含引号)。

说明/提示

以下限制适用于所有测试用例: - $1 \leq \text{行数 } NH - 1 \leq 3$ - $1 \leq \text{列数 } NV \leq 3$ - $1 \leq \text{每行/���的桌子数量 } H, V \leq 10^5$ - $1 \leq \text{团体数量 } N \leq 10^5$ - $1 \leq \text{每个团体需要的桌子数量 } G_i \leq 10^5$ ### 示例输入 1 ``` 3 2 5 3 6 5 2 3 5 4 2 ``` ### 示例输出 1 ``` 1 7 11 no 14 9 ``` ### 示例输入 2 ``` 2 2 3 3 3 3 3 1 ``` ### 示例输出 2 ``` 1 5 9 ``` **本翻译由 AI 自动生成**