A71461 | 发糖
来源编程题
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
幼儿园大班的 N 个同学坐成一排,位置编号为 1 \sim N,每个同学在坐下来之后会立刻得到一定数量的糖。
接下来老师会有 3 种不同的操作:
发糖:给 [L,R] 之间的每个同学发 X 颗糖。
找最少:查询 [L,R] 之间糖最少的同学有几颗糖。
统计:查询 [L,R] 之间所有的同学,一共拿到了多少颗糖。
同学们在整个发糖的过程中,都不会吃糖。
请编程帮助老师完成上述的发糖操作。
输入格式
第 1 行有两个整数 N 和 M,代表了同学的总数以及操作的总数。
第 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
数据范围
1 \le N \le 200000,1 \le M \le 100000,1 \le X \le 100000。
每位同学刚坐下来时,得到的糖果数量不超过 100000 颗。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?