#HK5453. 「UOI 2018 Stage 4 Day2」文本编辑器
「UOI 2018 Stage 4 Day2」文本编辑器
题目描述
题目译自 Ukrainian Olympiads in Informatics 2018 Stage 4 Day2 T3. Текстовий редактор
想象一下,你被一家大型软件公司聘用,成为一名强大的文本编辑器的开发者。当然,现代文本编辑器包含大量功能,但其开发可以通过一个通用方法得以简化:将编辑器的所有功能分解为独立的函数和库,每个函数或库的开发都可以由一个开发团队甚至单个程序员完成。
文本的形成方式如下:用户每次在文本的末尾或开头添加一个单词,并用空格将该单词与前面的或后面的单词分隔开。文本编辑器窗口的一行最多可以容纳 个字符(包括空格)。编辑器实现了标准的换行逻辑:第一个无法放入前一行的单词将被转移到下一行。如果两个相邻的单词位于不同行,则它们之间的空格会消失。
你的任务是实现一个辅助程序,实时计算用户输入的文本所占用的行数。
输入格式
输入文件的第一行包含两个自然数,均不超过 :一行中最大字符数 和编辑器的总操作数 。这里操作指的是以下三种类型之一:
- 用户在文本末尾添加一个单词;
- 用户在文本开头添加一个单词;
- 需要计算当前文本占用的行数。
接下来有 行,每行包含一个或两个数字:操作类型(1、2 或 3),对于操作类型 1 和 2(输入单词),通过空格分隔的第二个数字是用户输入的单词长度。单词长度是一个自然数,且不会超过一行的最大长度 。输入文件中的第一个操作只能是类型 1 或类型 2 的操作,均应解释为向空的文本中添加第一个单词。此外,输入文件中至少包含一个类型 3 的操作。
输出格式
输出文件应包含与输入文件中类型 3 操作数量相同的行数。每行输出对应查询的结果,即查询时文本当前的行数。
10 9
1 6
1 3
3
2 1
3
3
1 5
1 1
3
1
2
2
3
在输入所有单词后,文本的第一行将包含长度为 和 的单词,第二行包含长度为 和 的单词,第三行包含一个长度为 的单词。
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 所有输入单词的总长度不超过 | ||
| 且输入文件中没有类型 2 操作 | ||
| 输入文件中没有类型 2 操作 | ||
| 且输入文件中没有类型 1 操作 | ||
| 输入文件中没有类型 1 操作 | ||
| 无附加限制 |