Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define debug(l) cerr<<#l<<' '<<l<<'\n';
- #include "bits/stdc++.h"
- using namespace std;
- #define all(a) a.begin(), a.end()
- typedef long long ll;
- typedef pair<ll, ll> pll;
- typedef long double ld;
- const int MAXN = 129;
- ll t[MAXN][MAXN][MAXN] = {};
- ll n;
- void upd(ll x, ll y, ll z, ll delta) {
- for (ll i = x; i <= n; i += i & -i) {
- for (ll j = y; j <= n; j += j & -j) {
- for (ll f = z; f <= n; f += f & -f) {
- t[i][j][f] += delta;
- }
- }
- }
- }
- ll get(ll x, ll y, ll z) {
- ll ans = 0;
- for (ll i = x; i > 0; i -= i & -i) {
- for (ll j = y; j > 0; j -= j & -j) {
- for (ll f = z; f > 0; f -= f & -f) {
- ans += t[i][j][f];
- }
- }
- }
- return ans;
- }
- ll sum(ll xl, ll yl, ll zl, ll xr, ll yr, ll zr) {
- return get(xr, yr, zr) - get(xr, yl, zr) - get(xl, yr, zr) + get(xl, yl, zr) - get(xr, yr, zl) + get(xr, yl, zl) + get(xl, yr, zl) - get(xl, yl, zl);
- }
- signed main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- cin >> n;
- ll indef;
- //n++;
- while (cin >> indef) {
- if (indef == 3)return 0;
- if (indef == 1) {
- ll x, y, z, up;
- cin >> x >> y >> z >> up;
- x++, y++, z++;
- upd(x, y, z, up);
- }
- else {
- ll x1, y1, z1, x2, y2, z2;
- cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
- x2++, y2++, z2++;
- cout << sum(x1, y1, z1, x2, y2, z2) << '\n';
- }
- }
- }
Add Comment
Please, Sign In to add comment