#L0109. 花园移植与最长空地

花园移植与最长空地

题目描述

小珂的花园可以看作一个 0101 序列:11 表示这个位置种了花,00 表示这是一块空地。

园艺师补种空地的基本方式是「移植」:把另一段连续区域里所有的花全部挖出,用这些花去填补目标区域里的空地。填补时从目标区域的最左端开始,见空地就栽,直到花用完;如果花有剩余,多余的花直接丢弃;如果挖出的花不够填满所有空地,就只保证位置靠前的空地都被补上。

假定初始时花园里种满了花(没有任何空地)。现在给出一串挖花和移植的操作,你需要即时回答:花园某个区间内最长的连续空地有多长。

输入格式

第一行两个整数 n,mn,m,表示花园可分为从 11nn 编号的 nn 个连续位置,共有 mm 个操作。

以下 mm 行每行是下列三种格式之一:

  • 0lr0\quad l\quad r:把 [l,r][l, r] 范围内挖成空地(该范围内的花全部移除);
  • 1l0r0l1r11\quad l_0\quad r_0\quad l_1\quad r_1:进行一次移植,用 l0l_0r0r_0 的花修补 l1l_1r1r_1 的空地;
  • 2lr2\quad l\quad r:询问 [l,r][l, r] 区间内最长连续空地的长度。

上述区间均在 [1,n][1, n] 范围内。

输出格式

对于每个询问,输出一行一个整数,表示询问区间内最长连续空地的长度。

样例

10 10
0 2 2
0 4 6
0 10 10
2 1 10
1 8 10 1 4
2 1 10
1 1 4 8 10
2 1 10
1 7 10 1 6
2 1 10
3

3 6 6

</p>

提示

对于 20%20\% 的数据,n,m100n, m \leq 100;

对于 50%50\% 的数据,n,m20000n, m \leq 20000;

对于 100%100\% 的数据,n,m200000n, m \leq 200000

难度 提高
通过率
尝试 0
已通过 0
ID
843
类型
传统题
Time Limit
1000ms
Memory Limit
256MiB
上传者