#C07L06P12. C07.L06.STL之动态数组.附加题2.巧克力

C07.L06.STL之动态数组.附加题2.巧克力

题目描述

John 有 n 个盒子,第 i 个盒子里有 cic_i 块巧克力(盒子可以为空),盒中的巧克力排成一行,从左到右编号分别为 1 , 2 , ... , cic_i 。每块巧克力有一定的耐久度,当耐久度为 0 时,巧克力会碎掉并开始融化,这时 John 只能把它吃了。

现在已知初始时,每个盒子里巧克力的耐久度,接着会有 m 次操作。操作分为 3 种,每种操作会使得被操作的每块巧克力耐久度减少 1 。

操作 1 ):把第 x 盒子里的巧克力按从左到右的顺序取出,然后放入第 y 个盒子中。(第 y 个盒子里巧克力的耐久不变,新放入的巧克力按顺序放入第 y 个盒子里的最右边)

操作 2 ):把第 x 个盒子里的巧克力按从右到左的顺序取出,然后放入第 y 个盒子中。(第 y 个盒子里巧克力的耐久不变,新放入的巧克力按逆序序放入第 y 个盒子里的最右边)

操作 3 ):把第 x 个盒子里的巧克力顺序翻转。

现在 John 想知道 m 操作后,每个盒子中巧克力的数量以及每块巧克力的耐久度。

输入格式

第一行两个整数 n , m ( 1 <= n , m <= 1000 ),表示 n 个盒子和 m 次操作。

接下来 n 行,每行以一个整数 cic_i(0 <= cic_i <= 1000)开头,表示初始时每个盒子中巧克力的数量,接下来 cic_i 个整数,表示每个巧克力的耐久度,耐久度为不超过 1000 的正整数。

接下来 m 行,每行第一个整数 op ,表示操作的种类。若 op 为 1 、 2 ,接下来两个整数 x , y ;若 op 为 3 ,接下来一个整数 x 。具体含义如前文所述。

输出格式

n 行,每行以一个整数 cic_i 开头,表示每个盒子中巧克力的数量,接下来 cic_i 个整数表示每个巧克力的耐久度,整数之间用空格隔开(行尾不要有多余空格)。

样例

2 2
3 1 2 3
3 1 2 3
1 1 2
3 2
0
3 1 2 1

样例解释

第一次操作后,第 1 个盒子为空,第 2 个盒子有 5 块巧克力,耐久度分别为 1 , 2 , 3 , 1 , 2 。

第二次操作后,第 1 个盒子为空,第 2 个盒子有 3 块巧克力,耐久度分别为 1 , 2 , 1 。