1376:淘气的宝宝

时间限制: 8 S | 内存限制: 4096 KB
Accept: 0 | Submit: 0
[提交] [状态] [讨论版]
描述

为了迎接2020年秋季学期的新生,信息学院布置了n盏彩灯,彩灯上分别贴上了从1到n的数字,数字为i的灯称为第i盏灯,并按数字从小到大顺序摆放。由于还没开学,只有其中一部分彩灯的开关是打开的,剩下的彩灯的开关是关闭的。彩灯的开关开启后如果再次按下,则会变为关闭状态;关闭状态时如果再次按下,则会变为开启状态。

这时爬来了一个淘气的宝宝,他喜欢把数字范围从L到R(包含L和R)的所有彩灯的开关都按一下,也就是把范围内所有打开的彩灯关闭,把所有关闭的彩灯打开。宝宝并不满足于这一次操作,他喜欢把上述操作一共做Q遍,每遍选择的范围L和R还不尽相同。

问:最后所有开关打开的彩灯,贴的数字之和是多少?

输入

一个正整数T,表示案例的数量。(T<=10)

每组案例先是正整数n和Q。(n<=1000000,Q<=100000)

然后是n个要么是0要么是1的整数,分别表示第1盏灯到第n盏灯的初始状态是关闭还是开启。(0表示关闭,1表示开启)

最后有Q行数据,每行数据包含两个正整数L和R。(1<=L<=R<=n)

输出

针对每组案例,输出一个整数,表示最后处于开启状态的彩灯贴的数字之和。

每组案例输出完要换行。

样例输入

1

5 2

0 1 1 0 1

2 4

3 3

样例输出

12

HINT

初始状态是:关开开关开

第一次按后:关关关开开

第二次按后:关关开开开

故3+4+5=12

来源
厦大附中编程竞赛培训