魔幻长方体 Beta Round #14 (Cube杯水题赛)
背景
真实题目名称:魔幻长方体
描述
小明有一个很神奇的长方体,它的长宽高分别为M,N,P,是由M×N×P个单位正方体拼成的。把它放在坐标系中,范围便是(1,1,1)~(M,N,P)。像这样,我们可以用长方体的两个角的坐标来表是一个长方体。
每个小正方体中均写有一个整数,在一开始都是0。现在,小红需要小明做Q件事,第i件事是以下两种中的一种:
①给长方体(xi,yi,zi)~(ai,bi,ci)的每个小正方体的数都加上di。
②求长方体(xi,yi,zi)~(ai,bi,ci)的所有小正方体的数的和。
当然小明会把这个艰巨的任务交给你(标准剧情),于是你要做的是:
输入格式
第一行为四个数M,N,P,Q,以空格隔开。
接下来Q行,每行7个数xi,yi,zi,ai,bi,ci,di,以空格隔开。如果di不为0,则是给长方体(xi,yi,zi)~(ai,bi,ci)的每个小正方体的数都加上di,否则,是求长方体(xi,yi,zi)~(ai,bi,ci)的所有小正方体的数的和。
输出格式
输出Q行,每行为一个数。
如果是给长方体(xi,yi,zi)~(ai,bi,ci)的每个小正方体的数都加上di,应输出一行-1,否则,输出询问的答案。
样例输入
3 3 3 6 1 1 1 3 3 3 0 1 1 1 2 2 2 1 2 2 2 3 3 3 -1 1 1 1 2 2 2 0 1 1 1 1 1 1 0 2 2 2 2 2 2 0
样例输出
0 -1 -1 7 1 0
数据范围与约定
对于100%的数据,1≤xi≤ai≤M,1≤yi≤bi≤N,1≤zi≤ci≤P,|di|≤100。
对于40%的数据,M,N,P,Q≤2,20,50,100,200,500,8000,10000;
对于另外30%的数据,Q≤100,M,N,P≤200,250,300,1000,1500,2000;
对于另外30%的数据,M,N,P≤100,Q≤500,5000,6000,7000,8000,10000。
样例解释
在两次修改之后,长方体中每个小正方体的数变成了:
(第1层) (第2层) (第3层)
0 0 0 0 -1 -1 0 -1 -1
1 1 0 1 0 -1 0 -1 -1
1 1 0 1 1 0 0 0 0