题库练习 发糖

A71461 | 发糖

来源编程题
时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

幼儿园大班的 N 个同学坐成一排,位置编号为 1 \sim N,每个同学在坐下来之后会立刻得到一定数量的糖。

接下来老师会有 3 种不同的操作:

  1. 发糖:给 [L,R] 之间的每个同学发 X 颗糖。

  2. 找最少:查询 [L,R] 之间糖最少的同学有几颗糖。

  3. 统计:查询 [L,R] 之间所有的同学,一共拿到了多少颗糖。

同学们在整个发糖的过程中,都不会吃糖。

请编程帮助老师完成上述的发糖操作。

输入格式

1 行有两个整数 NM,代表了同学的总数以及操作的总数。

2 行有 N 个整数,代表每个同学坐下来之后得到糖果的数量。

接下来 M 行,每行先大写字母表示操作类型。如果大写字母是 P,表示发糖。如果大写字母是 M,表示找最少。如果大写字母是 S,表示统计。

每行紧跟着大写字母的是两个整数 L,R 表示操作范围,如果操作类型是发糖,会继续读入第三个整数 X

输出格式

输出若干行,每行一个整数,针对第 2,3 两种操作,输出对应的结果。

输入输出样例

输入 #1
4 5
3 1 2 4
M 3 4
S 1 3
P 2 3 1
M 3 4
S 1 3
输出 #1
2
6
3
8
C++ 编辑器
输入
输出