CF2148F Gravity Falls

题目描述

农夫约翰有 $n$ 个数组 $a_1, a_2, \ldots, a_n$,它们的长度可能不同。他将把这些数组堆叠在一起,形成一个有 $n$ 行的网格。数组按左对齐放置,可以按任意顺序叠放。 接下来,重力会生效。任何不在最底行,且下方没有元素的单元格会向下掉落一行。这个过程会不断重复,直到没有符合条件的单元格为止。 在所有可能的堆叠顺序中,输出经过重力作用后,字典序最小的底行。

输入格式

第一行为 $t$($1 \leq t \leq 1000$)——表示测试用例的数量。 每个测试用例的第一行为 $n$($1 \leq n \leq 2 \cdot 10^5$)。 接下来的 $n$ 行中,每行第一个整数 $k_i$($1 \leq k_i \leq 2 \cdot 10^5$)表示 $a_i$ 的长度。 接着是 $k_i$ 个用空格分隔的整数 $a_{i_1}, a_{i_2}, \ldots, a_{i_{k_i}}$($1 \leq a_{i_j} \leq 2 \cdot 10^5$)。 保证所有测试用例中 $n$ 的总和以及所有 $k_i$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出重力作用后字典序最小的底行,每行一个测试用例的答案。

说明/提示

测试用例 2 的示意图: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2148F/4ec7d3d1781013b58e8d373267bebd2ecbb7485787e4d2552690a27fea2aa32e.png) 测试用例 4 的示意图: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2148F/7036e4ec7d9a4142574f766812aefba68998261149a9ca1e5bf6f89d8e5e148f.png) 由 ChatGPT 5 翻译