题目描述

给你一个长度为n的数组 \(a_1, a_2, \dots a_n\) 。

一开始这n个元素都为0。

然后有m次操作,每次操作有两种操作类型:

  • update x y a:将区间 \([x,y]\) 范围内的元素都置为 a
  • query x y:询问区间 \([x,y]\) 范围内有多少不同的数据段。

举个例子,如果一个区间内有如下的数 \(3,3,2,2,2,1\) ,那么它有3段数据段,分别是 \(3,3\),\(2,2,2\) 和 \(1\) 。

输入格式

输入的第一行包含两个整数 \(n,m(1 \le n \le 10^5, 1 \le m \le 10^5)\) 。

接下来 \(m\) 行每行可能是两种形式:

  • update x y a:将区间 \([x,y]\) 范围内的元素都置为 a
  • query x y:询问区间 \([x,y]\) 范围内有多少不同的数据段。

其中 \(1 \le x \le y \le n, 1 \le a \le 10^9\) 。

输出格式

对于每次 query 询问,输出该区间的数据段的个数。

样例输入

3 3
update 1 2 1
query 1 2
query 2 3

样例输出

1
2

最新文章

  1. [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
  2. JavaScript变量声明提前
  3. GDataXMLNode应用
  4. Scala函数式编程进阶
  5. 【转】Java-----jar反编译修改重新打包
  6. Oracle 流复制实践笔记
  7. 介绍开源的.net通信框架NetworkComms框架之二 传递类
  8. 新机自动创建yum库
  9. 《Code Complete》ch.15 使用条件语句
  10. tornado框架之路三之ajax
  11. MyBatis学习练习
  12. web前端开发(3)
  13. js function定义函数的4种方法
  14. JQuery淡入淡出 banner切换特效
  15. mysql数据库迁移文档
  16. PHPstorm 2017激活
  17. java线程学习之线程创建
  18. Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解
  19. 关于方法中的self参数和全局变
  20. android sqlite 数据唯一性

热门文章

  1. Mybatis使用 爬坑记录
  2. elipse egit的使用
  3. php文件上传$_FILES数组格式
  4. 使用帝国备份王软件提示 Parse error: syntax error, unexpected end of file
  5. JasperStudio 输出pdf 出错。
  6. material-ui里面的withStyles是什么?
  7. JavaScript--tab栏切换效果
  8. pytorch 多GPU训练总结(DataParallel的使用)
  9. hdu2149 巴什博奕
  10. selenium实现网页截全屏