假的线段树

假的线段树

题目背景

LS疯狂迷恋线段树,但是如果出在语法测试中确实有点过分,那就来一棵假的线段树。

题目描述

线段树是以后要学习的一种神奇的数据结构,它能实现的是对一个数组进行区间修改,区间查询。现在LS给你一个由\(n\)个数组成的数组\(num[n]\),接下来又会让你进行\(m\)次操作,一共可能会有两种操作,如下:

  • 当\(opt=1\)时,给出三个数\(l,r,v\),将\(a_l\)到\(a_r\)的所有数都加\(v\)。
  • 当\(opt=2\)时,给出两个数\(l,r\),输出\(a_l\)到\(a_r\)之间所有数的和。

PS:题目中所给数列下标从1开始

输入格式

第一行输入两个整数\(n,m\),具体含义见题目描述

第二行输入\(n\)个整数,为数组\(num[\ ]\)。

接下来\(m\)行,每行由三或四个整数构成,为\(opt,l,r,v\)或\(opt,l,r\)。

输出格式

对于每次\(opt=2\)的操作,都要输出该操作得到的和。

输入输出样例

输入#1

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

输出#1

5
24

数据范围与约定

对于\(100\%\)的数据,\(0 \le n,m \le 100,\ 0 \le v,num[i]\le 10000\)。

信息

ID
1003
难度
1
分类
(无)
标签
递交数
33
已通过
6
通过率
18%
上传者

相关

在下列比赛中:

ICPC练习赛 语法Test1