#L0497. 区间等差数列与单点查询

区间等差数列与单点查询

题目描述

维护一个长度为 nn 的数列 aia_i,支持两种操作:

  • 1 l r K D:将一个首项为 KK、公差为 DD、长度为 r−l+1r-l+1 的等差数列加到 [l,r][l,r] 范围的每个数上。即 ala_l 加 KK,al+1a_{l+1} 加 K+DK+D,…\dots,ara_r 加 K+(r−l)×DK+(r-l) \times D。

  • 2 p:查询 apa_p 的值。

输入格式

第一行两个整数 n,mn,m,分别表示数列长度和操作次数。

第二行 nn 个整数,第 ii 个数表示 aia_i 的初始值。

接下来 mm 行,每行先输入一个整数 optopt:

  • 若 opt=1opt=1,再输入四个整数 l,r,K,Dl,r,K,D;
  • 若 opt=2opt=2,再输入一个整数 pp。

输出格式

对于每个 opt=2opt=2 的询问,一行一个整数表示答案。

样例

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

提示

对于 100%100\% 的数据,1≤n,m≤1051\le n,m \le 10^5,−200≤ai,K,D≤200-200\le a_i,K,D \le 200,1≤l≤r≤n1 \le l \le r \le n,1≤p≤n1 \le p \le n。

难度 普及+/提高-
通过率 —
尝试 0
通过 0
ID
1225
类型
传统题
Time Limit
1000ms
Memory Limit
128MiB
上传者