#P12453. [INOI Team Selection 2021] Lisdeque

[INOI Team Selection 2021] Lisdeque

Description

乌龟大师有 nn 个双端队列,这些队列中的所有元素都是互不相同的。

熊猫想要成为神龙大侠,需要利用这些双端队列构造出最强大的数组。

在每一轮操作中,他可以选择一个非空的双端队列(如果存在的话),然后选择其队首或队尾元素,将该元素添加到数组的末尾,并从双端队列中移除该元素。请帮助他找出能够构造出的最强大数组。

一个数组的强大程度由其最长递增子序列(LIS)的长度决定。

Input Format

输入的第一行包含一个整数 nn,表示乌龟大师拥有的双端队列数量。

接下来的 nn 行中,第 ii 行首先是一个整数 kik_i,表示第 ii 个双端队列的大小,随后是 kik_i 个整数,表示该双端队列中的元素。

Output Format

输出的第一行应打印能够获得的最大 LIS 长度,第二行打印构造出的数组。如果存在多个可能的解,可以输出其中任意一个。

3
4 7 2 3 5
3 1 11 9
4 10 4 8 6
9
1 7 2 3 10 4 5 6 8 9 11

Hint

数据范围

  • 1n2000001 \leq n \leq 200\,000
  • 1ki2000001 \leq k_i \leq 200\,000
  • i=1nki200000\sum_{i=1}^{n} k_i \leq 200\,000
  • 保证所有元素互不相同,即 ai1,j1ai2,j2a_{i_1,j_1} \neq a_{i_2,j_2}
  • ai,j109a_{i,j} \leq 10^9

子任务

子任务 分值 限制条件
1 50 i=1nki2000\sum_{i=1}^{n} k_{i} \leq 2000
2 无额外限制

翻译由 DeepSeek V3 完成