SP15360 WRLUNCH - World Record Lunch
题目描述
一群人想要打破世界纪录,看能否同时有最多人数一起用餐。为了实现这个目标,他们在国家最大的桥上摆设餐桌,并决定按照字母「S」的形状来安排桌子。
这个桌子布局可以用四个整数来描述:**NH**、**NV**、**H** 和 **V**。其中,**NH** 和 **NV** 分别代表行数和列数。**H** 和 **V** 分别表示每行和每列的桌子数量。在这个布局中,桌子从右上角按顺序编号,从 1 号桌开始。例如,下面的图展示了几种可能的布局:

预计会有许多人来参与,组织者需要为这些人安排用餐座位。每个团体需要一定数量的桌子,并且这些桌子不能与其他团体共享。此外,他们希望所有桌子是连在一起的,而不是分布在不同的行或列中,即希望在同一行或同一列获得一组连续的桌子。如果无法满足这一条件,他们宁愿选择别的地方就餐。另外,团体也希望有一些隐私,即他们周围的桌子是空的:不希望在第一张桌子之前或最后一张桌子之后立即有人坐。若能满足这个条件,我们称这个位置为「私密」的。
每当一个团体到达时,组织者必须基于当前桌子的占用情况来决定这个团体的位置,而不考虑将来可能到来的其他团体。因为一个团体会坐在连续的桌子上,所以团体的位置可以通过第一个桌子的编号来定义。因此,当一个团体到来时,组织方希望实现以下目标:
- 如果有合适的私密位置,就选择能保证隐私的最小编号;
- 如果无法保证隐私,但有足够空间,就选择能容纳整个团体的最小编号;
- 如果没有一个完整的行或列能容纳这个团体,那就只能让该团体离开。
举个例子:假设一个布局的参数为 **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 自动生成**