问题 3349 --翻硬币(加强)

3349: 翻硬币(加强)

时间限制: 1 Sec  内存限制: 256 MB
提交: 9  解决: 2
[提交][状态][讨论版][命题人:]

题目描述

n 枚硬币从左到右依次排成一排,编号依次为 1 到 n。硬币的正面朝上用 0 表 示,背面朝上用 1 表示,一开始所有的硬币都是正面朝上。 现进行 m 次操作,

每次操作只有两种

第一种:把一个区间[l,r]内的所有硬币翻过来:原来正面朝上的 变为反面朝上,原来反面朝上的变为正面朝上。

第二种:给定一个区间内[l,r],询问这个区间内正面朝上的硬币有多少个

输入

第一行:两个整数n,m

接下来有m行,每行三个整数op,l,r,第一个整数op,为操作种类,如果op=1表示把区间[l,r]内的硬币进行翻转。如果op=2,表示查询区间[l,r]内硬币朝上的个数

输出

若干行,每行一个整数,表示当op=2时,输出的查询结果

样例输入

5 5
1 2 3
1 1 4
2 2 3
2 1 4
2 1 5

样例输出

2
2
3

提示


1<=n,m<=10^5



1<=l<=r<=n

来源

[提交][状态]