要求
- 必须使用文件读写,如下图所示。"string.in"和"string.out"为第一题的示例
- 结束前把最终版本的源程序通过classin私聊发送给我。T1的文件名应为"string.cpp"
- 出现文件名错误,文件读写错误,编译错误,测试代码未注释等情况,均为0分
T1 字符串操作(string)
题目描述
请实现一个支持在任意位置插入和删除字符的文本编辑器。开始时,编辑器的文本是空的,给定 n n n 条修改操作,请模拟编辑器在这些操作下的行为,最后输出编辑器所记录的文本内容:
插入操作:该操作还需要提供一个数字 k k k 与一个字符 c h ch ch 作为参数,编辑器将在文本的前 k k k 个字符之后插入 c h ch ch。特别地,若 k = 0 k=0 k=0,则编辑器将会在文本的首位插入 c h ch ch;
删除操作:该操作还需要提供一个数字 k k k,编辑器删除文本的第 k k k 个字符;
输入格式
从文件 string.in 中读入数据
第一行:单个整数 n n n;
第二行到第 n + 1 n+1 n+1 行:每行表示一个操作:
插入操作以字母 i i i 开头,后接一个自然数 k k k 与一个字母 c h ch ch,保证 c h ch ch 是一个大写的英文字母, k k k 不超过当前文本的长度;
删除操作以字母 d d d 开头,后接一个正整数 k k k,保证 k k k 不超过当前文本的长度。
输出格式
输出到文件 string.out 中
单个字符串:表示编辑器最后所记录的文本内容。
数据范围
对于 30% 的数据, 1 ≤ n ≤ 500 1\leq n\leq 500 1≤n≤500;
对于 60% 的数据, 1 ≤ n ≤ 50000 1\leq n\leq 50000 1≤n≤50000;
对于 100% 的数据, 1 ≤ n ≤ 500000 1\leq n\leq 500000 1≤n≤500000。
样例数据
输入:
5
i 0 A
i 1 B
i 2 C
d 2
d 1
输出:
C
说明:
前三步构造出了 A B C ABC ABC,第四步删除了 B B B,第五步删除了 A A A
T2 数数(count)
题目描述
给定一个长度为 n n n 的数列 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_{n} a1,a2