#P14945. [uoi2018]Text Editor文本编辑器

    ID: 14161 传统题 2000ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2200数据结构分块倍增贪心块状链表前缀和

[uoi2018]Text Editor文本编辑器

题目描述

想象你进入了一家大型软件公司,成为了一款强大文本编辑器的开发者。当然,现代文本编辑器包含大量功能,但它们的开发可以拆分成许多独立的功能与库,每一部分都可以由一个开发团队甚至一名程序员完成。

文本按如下方式形成:用户每次向文本末尾或开头加入一个单词,并用一个空格与原有相邻单词隔开。文本编辑器窗口的一行最多容纳 LL 个字符,空格也计入字符数。编辑器采用标准的换行逻辑:第一个无法放入上一行的单词会被移到下一行。如果两个相邻单词位于不同行中,则它们之间的空格消失。

任务

请实现一个辅助程序,实时计算用户输入的当前文本占用多少行。

输入格式

第一行包含两个正整数 L,NL,N,均不超过 10510^5LL 表示一行最多容纳的字符数,NN 表示操作总数。

每个操作有三种类型:

  1. 用户在文本末尾加入一个单词;
  2. 用户在文本开头加入一个单词;
  3. 询问当前文本占用的行数。

接下来 NN 行,每行包含一个或两个整数:操作类型(1,2,31,2,3),若为操作 1122,还会给出用户输入单词的长度。该长度为正整数,且不超过 LL

输入中的第一个操作只能是类型 11 或类型 22,两者都表示向空文本中加入第一个单词。保证输入中至少有一个类型 33 的操作。

输出格式

对每个类型 33 的操作,输出一行一个整数,表示该时刻文本占用的行数。

输入

10 9
1 6
1 3
3
2 1
3
3
1 5
1 1
3

输出

1
2
2
3

子任务

1.(8 分)L2L \le 2

2.(8 分)所有输入单词长度之和不超过 LL

3.(7 分)N1000N \le 1000,且输入中没有类型 22 的操作;

4.(14 分)输入中没有类型 22 的操作;

5.(7 分)N1000N \le 1000,且输入中没有类型 11 的操作;

6.(16 分)输入中没有类型 11 的操作;

7.(7 分)N1000N \le 1000

8.(33 分)无额外限制。