#C07L06P12. C07.L06.STL之动态数组.附加题2.巧克力
C07.L06.STL之动态数组.附加题2.巧克力
题目描述
John 有 n 个盒子,第 i 个盒子里有 块巧克力(盒子可以为空),盒中的巧克力排成一行,从左到右编号分别为 1 , 2 , ... , 。每块巧克力有一定的耐久度,当耐久度为 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 行,每行以一个整数 (0 <= <= 1000)开头,表示初始时每个盒子中巧克力的数量,接下来 个整数,表示每个巧克力的耐久度,耐久度为不超过 1000 的正整数。
接下来 m 行,每行第一个整数 op ,表示操作的种类。若 op 为 1 、 2 ,接下来两个整数 x , y ;若 op 为 3 ,接下来一个整数 x 。具体含义如前文所述。
输出格式
n 行,每行以一个整数 开头,表示每个盒子中巧克力的数量,接下来 个整数表示每个巧克力的耐久度,整数之间用空格隔开(行尾不要有多余空格)。
样例
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 。
相关
在以下作业中: