[Cpp] # include <stdio. h ># include <cstring> const int maxn = 202; int c [maxn] [maxn] [maxn]; inline int lowbit (int x) {return x & (-x);} void update (int x, int y, int z, int p) {for (int I = x; I <maxn; I + = lowbit (I) for (int j = y; j <maxn; j + = lowbit (j) for (int k = z; k <maxn; k + = lowbit (k) c [I] [j] [k] + = p;} int sum (int x, int y, int z) {int ans = 0; for (int I = x; I> 0; I-= lowbit (I) for (int j = y; j> 0; j-= lowbit (j) for (int k = z; k> 0; k-= lowbit (k )) ans + = c [I] [j] [k]; return ans;} int main () {int t, x1, x2, y1, y2, z1, z2, p; char op [10]; while (scanf ("% d", & t) = 1) {memset (c, 0, sizeof (c); while (t --) {scanf ("% s", op); if (op [0] = 'A ') {scanf ("% d", & x1, & y1, & z1, & x2, & y2, & z2, & p); update (x2 + 1, y2 + 1, z2 + 1,-p); update (x2 + 1, y1, z2 + 1, p ); update (x1, y2 + 1, z2 + 1, p); update (x2 + 1, y2 + 1, z1, p); update (x1, y1, z2 + 1, -p); update (x2 + 1, y1, z1,-p); update (x1, y2 + 1, z1,-p); update (x1, y1, z1, p);} else if (op [0] = 'q') {scanf ("% d", & x1, & y1, & z1 ); printf ("% d \ n", sum (x1, y1, z1) ;}} return 0 ;}