#P13803. [SWERC 2023] Broken trophy

[SWERC 2023] Broken trophy

Description

:::align{center}

:::

在你凯旋而归、赢得梦寐以求的奖杯后,你发现奖杯在行李箱中已经碎成了若干块。现在你只能修复它了。

你的奖杯原本是一个 3×N3 \times N 的矩形,其中 N1N \geq 1,也就是说它由 3 行 NN 列组成,共有 3N3N 个单位方格。奖杯被分成了 KK 块,第 kk 块是一个 Ak×BkA_k \times B_k 的矩形,其中 1AkBk31 \leq A_k \leq B_k \leq 3。这些碎片在行李箱中可能被旋转或翻转过。

修复奖杯的第一步,是将这些碎片重新拼成一个 3×N3 \times N 的矩形。更具体地说,你在纸上画好了一个 3×N3 \times N 的矩形,你需要将 KK 块碎片放在上面。你需要知道,对于所有 i3i \leq 3jNj \leq N,第 ii 行第 jj 列的单位方格被哪一块碎片覆盖。

Input Format

输入包含三行,每行由空格分隔的整数组成。第一行包含 KKNN。第二行包含 A1,A2,,AKA_1, A_2, \dots, A_K。第三行包含 B1,B2,,BKB_1, B_2, \dots, B_K

数据范围

  • 1K3000001 \leq K \leq 300\,000
  • 1N1000001 \leq N \leq 100\,000
  • 对于所有 kKk \leq K1AkBk31 \leq A_k \leq B_k \leq 3
  • 输入中描述的碎片可以被重新拼成一个 3×N3 \times N 的矩形。

Output Format

输出应包含三行,每行包含 NN 个用空格分隔的整数。如果你计划用第 kk 块碎片覆盖第 ii 行第 jj 列的单位方格,那么输出的第 ii 行第 jj 个数应为整数 kk

如果存在多种拼接方式,只要输出其中一种即可。

16 17
1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1
3 3 1 3 2 3 3 1 1 2 2 3 3 3 1 3
1 2 2 2 12 6 4 13 13 16 16 16 9 10 10 7 7
1 2 2 2 12 6 4 13 13 5 5 14 14 14 11 7 7
1 3 15 8 12 6 4 13 13 5 5 14 14 14 11 7 7

Hint

样例解释 1

这个输出表示如下的拼接方式:

:::align{center}

:::

另一种合法的拼接方式为:

:::align{center}

:::

由 ChatGPT 4.1 翻译