#P13854. [CERC 2023] Jumbled Stacks
[CERC 2023] Jumbled Stacks
Description
我们有一组 张卡片,标号从 到 ,它们被分配到 个牌堆中,记为 。每个牌堆都有容量限制:第 个牌堆 最多能容纳 张卡片。我们唯一可以进行的操作是:从某个牌堆的顶部取出一张卡片,将其移动到 另一个 牌堆的顶部(前提是不会超过目标牌堆的容量)。
通过若干次这样的操作,我们希望将卡片重新排列,使得满足以下条件:
- 从 开始的若干个牌堆(可能是 个或更多)被完全填满;
- 紧接着的下一个牌堆未被填满(甚至可能为空);
- 后面的所有牌堆完全为空;
- 如果我们把所有牌堆依次从 在底部到 在顶部依次堆叠起来,卡片应当从下到上严格升序排列,即 在最底部, 在最顶部。
题目保证以下条件成立:
$$n \leq \left( \sum_{i=1}^{k} C_i \right) - \max_{1 \leq i \leq k} C_i$$例如,假设我们有 张卡片, 个牌堆,且容量分别为 , 。初始状态如下(牌堆从底到顶给出, 表示该位置为空):
那么目标状态是:
Input Format
第一行包含两个整数 和 ,分别表示卡片的数量和牌堆的数量。
接下来的 行描述初始状态:第 行描述第 个牌堆 ,包含 个整数:
- 第一个整数为 ,表示牌堆容量;
- 随后的 个整数为牌堆中卡片的编号,从底部到顶部依次给出;
- 如果该牌堆中的卡片数少于 ,则最后几个数用 表示。
Output Format
输出一系列操作,每行两个整数 ,表示将一张卡片从牌堆 的顶部移动到牌堆 的顶部( 且 )。
操作总数不能超过 。
在所有操作结束后,输出一行:0 0。如果有多种可能的解法,可以输出任意一种。
6 3
4 2 3 0 0
3 4 1 6
3 5 0 0
2 3
2 3
1 2
1 2
3 1
2 1
2 1
3 2
3 1
2 3
1 3
2 1
3 2
3 2
0 0
Hint
注释
这是题面中给出的示例。上面的输出展示了 14 次移动操作,使牌堆达到期望状态。
京公网安备 11011102002149号