2966: 粉刷匠

内存限制:256 MB 时间限制:4.000 S
评测方式:文本比较 命题人:
提交:17 解决:7

题目描述

在你的帮助之下,Aponoia 很快就完成了神器的开发。这款神器在面市之后 受到了各方好评,Aponoia 也借此发了一笔大财。在得到这笔钱后,Aponoia 决 定建造一栋别墅来犒劳一下自己。可是在别墅建造过程中,Aponoia 却对派来的 粉刷匠很不满意。在 Aponoia 看来,派来的粉刷匠简直连涂鸦的水平都不如。于 是,Aponoia 决定亲自上阵,自己来刷墙。然而,当 Aponoia 真正开始刷墙时,他才发现这真不是件轻松的活。每当 Aponoia 将一段围墙刷成一种颜色后,他无法直接从整体上欣赏整面墙:比如 当前墙上一共有几种颜色的油漆。可是,Aponoia 是个急性子,他不愿意每次都 爬下来观察一番在爬上去。于是,Aponoia 又来麻烦你了。

输入

第一行三个正整数n,k,q,代表围墙的总长度,颜色总数,操作的次数。 接下来 q 行每行开头为一个大写字母 op,‘C’表示修改操作,‘Q’表示询问操作。 若为修改操作,则紧接着三个整数 x,y,c,代表从距离围墙左端 x 个单位 长度,一直到距离围墙左端y 个单位长度,全部刷上第c 种颜色的油漆。其中, 所有颜色从0 开始标号。若为询问操作,则紧接着两个整数 x,y,代表询问从距离围墙左端 x 个单 位长度,到距离围墙左端 y 个单位长度的区间中,当前能看到几种不同颜色的 油漆。 特别说明:对于‘C’操作,x 和 y 两个整点处也将被刷成第 c 种颜色;对于 ‘Q’操作,整点处以及相邻两个整点之间的开区间上的油漆颜色也要计算。另外, 若某段围墙从未被刷过油漆,则不算作一种颜色。

输出

对于每个询问操作,输出一行一个整数,代表询问的区间中当前能看到不 同颜色油漆的种类数。

样例输入 复制

2 3 6
C 0 2 0
Q 1 1
C 0 1 1
Q 0 1
C 1 2 2
Q 1 2

样例输出 复制

1
2
3

提示

注:颜色不会被覆盖。

对于30%的数据,1 ≤ n,q ≤ 10000。

对于50%的数据,1 ≤ n ≤ 50000,1 ≤ q ≤ 100000。

对于另外20%的数据,保证两种操作随机出现。

对于100%的数据,1 ≤ n,q ≤ 500000,1 ≤ k ≤ 60,0 ≤ x ≤ y ≤ n,0 ≤ c < k。