#P2777. Count Color

Count Color

题目描述

选择问题解决和程序设计作为选修课,您需要解决各种问题。在这里,我们遇到了一个新问题。

有一块长度为LL厘米的长木板(LL为正整数),可以将其均匀划分为LL段,从左到右依次标记为1,2,,L1, 2, \dots, L,每段长11厘米。现在需要对木板进行染色——每段只能染一种颜色。支持以下两种操作:

11. CABCC \, A \, B \, C:将木板第AA段到第BB段染成颜色CC
22. PABP \, A \, B:输出第AA段到第BB段中不同颜色的数量(包括端点)。

日常生活中描述颜色的词汇较少(如红、绿、蓝、黄等),因此可以假设不同颜色的总数TT非常小。为简化问题,颜色用数字表示(颜色11、颜色22、……、颜色TT)。初始时,木板颜色均为11

输入
第一行输入LL1L1000001 \leq L \leq 100000)、TT1T301 \leq T \leq 30)和OO1O1000001 \leq O \leq 100000),其中OO表示操作次数。接下来OO行,每行为操作CABCC \, A \, B \, CPABP \, A \, BA,B,CA, B, C为整数,且AA可能大于BB)。

输出
按顺序输出每个PP操作的结果,每行一个数字。

样例输入 1

2 2 4
C 1 1 2
P 1 2
C 2 2 2
P 1 2

样例输出 1

2
1

来源 POJ Monthly--2006.03.26,dodo