题目背景
线性表是若干数据元素的序列,线性表中元素的数量称为线性表的长度,一般情况下,称首元素为第 0 个元素,然后是第 1 个元素,第 2 个元素……。
题目描述
对于元素是整数的空线性表,针对提供的一系列线性表操作指令,依次输出所有操作指令执行完毕后线性表中的元素。
输入格式
第一行是一个正整数 n,表示指令的数量,接下来有 n 行,每行是一条指令,指令有如下多种格式:
- init s v :将线性表初始化(或者重置)为有 s 个值均为 v 的元素的线性表;
- clear :清空(删除)线性表中的所有元素;
- set p v :设置线性表第 p 个元素的值为 v;如果线性表不存在第 p 个元素,那就将线性表扩展到长度为 p+1,再设置第 p 个元素的值为 v,扩展过程中新添加的元素均为 0;
- push v :将值为 v 的元素添加到线性表的末尾;
- pushs s v :在线性表的末尾添加 s 个值均为 v 的元素;
- pop :删除线性表末尾的元素;如果线性表为空,则不执行任何操作;
- insert p v :在线性表第 p 个元素前插入值为 v 的新元素;如果线性表不存在第 p 个元素,那就将线性表扩展到长度为 p+1,再在第 p 个元素前插入值为 v 的新元素,扩展过程中新添加的元素均为 0;
- inserts p s v :在线性表第 p 个元素前插入 s 个值均为 v 的新元素;如果线性表不存在第 p 个元素,那就将线性表扩展到长度为 p+1,再在第 p 个元素前插入 s 个值均为 v 的新元素,扩展过程中新添加的元素均为 0;
- erase p :删除线性表中的第 p 个元素;如果线性表中不存在第 p 个元素,则不执行任何操作;
- erases from to :删除线性表中的第 from~to 的所有元素,包括第 from 和第 to 这两个元素;如果线性表不存在这个区间中的某个元素,则不执行删除该元素的操作;
- resize s :将线性表的长度设置为 s。如果线性表当前长度大于 s ,那么本操作的效果是将线性表截断到长度为 s;如果线性表当前长度小于 s ,那么本操作的效果是将线性表扩展到长度为 s,扩展过程中新添加的元素均为 0。
- sort asc :将线性表中的元素升序排序;
- sort desc :将线性表中的元素降序排序;
输出格式
输出有 2 行,第一行是所有指令执行完毕后线性表的长度;第二行是所有指令执行完毕后线性表的所有元素的值,任意数据之间用一个空格隔开。
输入输出样例
13
init 2 10
clear
set 4 2
push 100
pushs 3 20
pop
insert 5 30
inserts 10 5 7
erase 9
erases 12 100
resize 10
erases 1 3
sort asc
7
0 2 7 20 20 30 100
说明/提示
对于输入样例,每条指令执行后线性表中的元素情况如下:
执行的指令 |
执行指令后线性表中的元素 |
init 2 10 |
10 10 |
clear |
|
set 4 2 |
0 0 0 0 2 |
push 100 |
0 0 0 0 2 100 |
pushs 3 20 |
0 0 0 0 2 100 20 20 20 |
pop |
0 0 0 0 2 100 20 20 |
insert 5 30 |
0 0 0 0 2 30 100 20 20 |
inserts 10 5 7 |
0 0 0 0 2 30 100 20 20 0 7 7 7 7 7 0 |
erase 9 |
0 0 0 0 2 30 100 20 20 7 7 7 7 7 0 |
erases 12 100 |
0 0 0 0 2 30 100 20 20 7 7 7 |
resize 10 |
0 0 0 0 2 30 100 20 20 7 |
erases 1 3 |
0 2 30 100 20 20 7 |
sort asc |
0 2 7 20 20 30 100 |
👀️ 对于100% 的数据 $1 \leq n \leq 10000, 0 \leq \verb|s,v,p,from,to| \leq 10000$。