SP12563 CDC12_H - Halt The War

题目描述

战争惨烈,街头躺满了成千上万的人类和彩虹族人。Ronny 一筹莫展,决定去寻找彩虹王国的城堡,和国王谈谈。彩虹族人警惕地盯着 Ronny,生怕他做出什么坏事,好找机会“彩虹终结”他。终于,Ronny 见到了国王,提出停止这场可怕战争的建议。国王同意了,但提出了一个条件:Ronny 需要再次证明人类的能力。国王说,如果 Ronny 能回答他关于一排编号从 $1$ 到 $N$ 的彩虹族人的 $Q$ 个问题,他和他的族人就会离开。这些彩虹族人每人手里都有一张写着数字的牌(起初数字都是 $0$)。 问题分两种:修改查询和求和查询。修改查询是给定一个区间 $[A,B]$,Ronny 需要把这区间内每个彩虹族人的牌上的数字加一;比如区间是 $[1,2]$,就要把第 $1$ 和第 $2$ 个彩虹族人的数字都加一。求和查询是给定区间 $[A,B]$,Ronny 需要告诉国王这区间内所有彩虹族人牌上数字的总和。 如果 Ronny 能做到这点,人类就能得救!但他数学和快速求和不太行,得靠你帮忙啦。

输入格式

第一行是一个整数 $T$,表示测试用例的数量。接下来是 $T$ 组测试数据。 每组测试数据第一行有两个整数 $N$ 和 $Q$,分别表示彩虹族人的数量和国王提问的次数。接下来 $Q$ 行,每行包含一个字符串和两个整数,字符串表示查询类型,可能是 `modification` 或 `answer`,两个整数表示查询区间的起点和终点。

输出格式

每组测试数据先输出一行 `Scenario #i:`,其中 $i$ 是测试用例编号(从 $1$ 开始)。接着输出 $Q$ 行,每行对应一个查询的结果。如果是修改查询,输出 `OK`;如果是求和查询,输出区间内数字的总和。

说明/提示

## 数据范围 所有数据保证: - $1 \le T \le 100$。 - $1 \le N \le 10^5$。 - $1 \le Q \le 10^5$。