种树
时间限制:1秒 内存限制:256N
【问题描述】
某校大门外长度为 \(n\) 的马路,我们可以把马路看成一个数轴,马路的一端在数轴 \(1\) 的位置,另一端在 \(n\) 的位置。现在学校决定数轴上的某些整数点上种树。每一次可选择数轴上的一段连续的整数点上同一种类的树。要特别注意的是:每个整数点上可以种无限多棵树,也就是说,在 \(x\) 点上开始种了一棵种类为 \(1\) 的树,如果再次在该整点上中一棵种类为 \(2\) 的树,那么 \(x\) 点会有两棵不同种类树同时存在。并且没有何两次种的树是同一种类的。
种树的过程按时间顺序给出,现在学校想随时知道:任意一个区间上能看到多少种不同种类的树。
【输入格式】
第一行 \(n,m\) 表示道路总长为 \(n\),共有 \(m\) 个操作。接下来 \(m\) 行为 \(m\) 个操作:操作以下面两种形式给出:
操作1:\(1\ l\ r\) 表示在 \(l..r\) 之间种上的一种树。
操作2:\(2\ l\ r\) 表示询问 \(l..r\) 之间能见到多少种树\((l,r>0)\)。
【输出格式】
对于每个操作2 输出一个答案
【输入输出样例】
Input
5 4
1 1 3
2 2 5
1 2 4
2 3 5
Output
1
2
【数据说明】
对于 \(20\%\) 的数据:\(1≤n,m≤100\)
对于 \(60\%\) 的数据:\(1≤n≤1000,m≤50000\)
对于 \(100\%\) 的数据:\(1≤n,m≤50000\)
【来源】
Mr.he