P13803 [SWERC 2023] Broken trophy
题目描述
:::align{center}

:::
在你凯旋而归、赢得梦寐以求的奖杯后,你发现奖杯在行李箱中已经碎成了若干块。现在你只能修复它了。
你的奖杯原本是一个 $3 \times N$ 的矩形,其中 $N \geq 1$,也就是说它由 3 行 $N$ 列组成,共有 $3N$ 个单位方格。奖杯被分成了 $K$ 块,第 $k$ 块是一个 $A_k \times B_k$ 的矩形,其中 $1 \leq A_k \leq B_k \leq 3$。这些碎片在行李箱中可能被旋转或翻转过。
修复奖杯的第一步,是将这些碎片重新拼成一个 $3 \times N$ 的矩形。更具体地说,你在纸上画好了一个 $3 \times N$ 的矩形,你需要将 $K$ 块碎片放在上面。你需要知道,对于所有 $i \leq 3$ 和 $j \leq N$,第 $i$ 行第 $j$ 列的单位方格被哪一块碎片覆盖。
输入格式
输入包含三行,每行由空格分隔的整数组成。第一行包含 $K$ 和 $N$。第二行包含 $A_1, A_2, \dots, A_K$。第三行包含 $B_1, B_2, \dots, B_K$。
**数据范围**
- $1 \leq K \leq 300\,000$;
- $1 \leq N \leq 100\,000$;
- 对于所有 $k \leq K$,$1 \leq A_k \leq B_k \leq 3$;
- 输入中描述的碎片可以被重新拼成一个 $3 \times N$ 的矩形。
输出格式
输出应包含三行,每行包含 $N$ 个用空格分隔的整数。如果你计划用第 $k$ 块碎片覆盖第 $i$ 行第 $j$ 列的单位方格,那么输出的第 $i$ 行第 $j$ 个数应为整数 $k$。
如果存在多种拼接方式,只要输出其中一种即可。
说明/提示
**样例解释 1**
这个输出表示如下的拼接方式:
:::align{center}

:::
另一种合法的拼接方式为:
:::align{center}

:::
由 ChatGPT 4.1 翻译