编程题
### 问题描述 已知在水平面上一块 $n\times m$ 的区域 $S$,$S$ 的左上角坐标为 $(1,1)$,右下角坐标为 $(n,m)$,每个**整数点坐标**占用 $1\times 1$ 的单元面积。 有 $k$ 种不同高度的积木 $k_i$,每种积木的长和宽都为 $1$,高度分别为 $h_i$。 现在每次可以在 $S$ 中选定一个矩形区域 $T(a,b,c,d)$ 和一种积木 $k_i$,可以让中所有 $T$ **整数点坐标**上都竖着放上一块 $k_i$ 的积木(可以不断往上堆)。 ![图片描述](https://dn-simplecloud.shiyanlou.com/questions/uid2475380-20230503-1683088588389) 已知 $(a,b)$ 表示 $T$ 左上角坐标,$(c,d)$ 表示 $T$ 右下角坐标,满足 $1<=a<=c<=n$ 且 $1<=b<=d<=m$。 现在给定 $q$ 次操作: 操作 $1$:输入 $1$ 和 $T$ 的四个坐标值 $(a,b,c,d)$ 以及选定积木的编号 $k_i$。 操作 $2$:输入 $2$ 和 $T$ 的四个坐标值 $(a,b,c,d)$。 对于每次操作 $2$,请输出当前 $T$ 区域内所有积木体积之和。 ### 输入格式 输入第 $1$ 行包含四个正整数 $n,m,k,q$,分别表示 $S$ 区域的大小、积木的种数以及操作的次数 $(n,m\in[1,1000],k\in[1,10^5],q\in[1,2\times 10^5])$。 输入第 $2$ 行包含 $k$ 个积木的高度 $h_i(h_i\in[1,10^6])$。 第 $3\sim q+2$ 行每行输入均代表你需要进行的操作。 ### 输出格式 对于每个操作 $2$,输出仅一行,包含一个整数,表示答案。 ### 样例输入 ```text 2 2 1 2 3 1 1 1 2 2 1 2 1 1 2 2 ``` ### 样例输出 ```text 12 ```
查看答案
赣ICP备20007335号-2