#6528. 插入多段

插入多段

插入多段

题目描述

给定一个包含 NN 个正整数的初始数组。现在需要进行 KK 次插入操作,每次操作会在当前数组的指定下标位置插入一段新的整数序列。每次插入操作都基于上一次插入后的结果进行。请输出经过 KK 次插入后的最终数组。

输入格式

第一行:两个正整数 NNKK,分别表示初始数组的元素个数和插入操作的次数。

第二行:NN 个不同的正整数,表示初始数组的元素。

接下来 KK 行:每行描述一次插入操作,格式为:Ki Kn a1 a2  aKnK_i \ K_n \ a_1 \ a_2 \ \dots \ a_{K_n}。其中 KiK_i 表示本次插入的目标位置(即插入到当前数组第 KiK_i 个元素之前,数组位置从 11 开始计数),KnK_n 表示本次插入的元素个数,随后的 KnK_n 个正整数是本次要插入的元素序列。

输出格式

输出一行,包含若干个正整数,表示经过 KK 次插入后的最终数组。相邻两个数之间用一个空格分隔。

样例 #1

样例输入 #1

5 3
2 6 1 9 7
2 3 1 2 3
3 4 1 2 3 4
4 5 1 2 3 4 5

样例输出 #1

2 1 1 1 2 3 4 5 2 3 4 2 3 6 1 9 7

样例解释

我们逐步模拟三次插入操作的过程:

  1. 初始数组(S₀)[2, 6, 1, 9, 7](共5个元素,位置1到5依次对应这5个数)。

  2. 第一次插入

    • 操作:在位置 2 之前插入 3 个数 [1, 2, 3]
    • 原位置2的元素是 6,插入后数组变为(S₁): [2, 1, 2, 3, 6, 1, 9, 7](共8个元素)。
  3. 第二次插入

    • 操作:在当前数组(S₁)的位置 3 之前插入 4 个数 [1, 2, 3, 4]
    • S₁的位置3的元素是 2,插入后数组变为(S₂): [2, 1, 1, 2, 3, 4, 2, 3, 6, 1, 9, 7](共12个元素)。
  4. 第三次插入

    • 操作:在当前数组(S₂)的位置 4 之前插入 5 个数 [1, 2, 3, 4, 5]
    • S₂的位置4的元素是 2,插入后数组变为(S₃): [2, 1, 1, 1, 2, 3, 4, 5, 2, 3, 4, 2, 3, 6, 1, 9, 7](共17个元素)。

最终输出S₃的所有元素,即为样例输出。

数据范围与提示

对于 100%100\% 的数据:

  • 1N10001 \le N \le 1000
  • 1K10001 \le K \le 1000
  • 每次插入的元素个数 1Kn10001 \le K_n \le 1000
  • 数组中的所有元素(包括初始和插入的)均为不超过 10001000 的正整数,且初始数组中的元素互不相同。