ivnikkk

B

Jun 21st, 2022
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS  
  2. #define debug(l) cerr<<#l<<' '<<l<<'\n';
  3. #include "bits/stdc++.h"
  4. using namespace std;
  5. #define all(a) a.begin(), a.end()
  6. typedef long long ll;
  7. typedef pair<ll, ll> pll;
  8. typedef long double ld;
  9. const int MAXN = 129;
  10. ll t[MAXN][MAXN][MAXN] = {};
  11. ll n;
  12. void upd(ll x, ll y, ll z, ll delta) {
  13.     for (ll i = x; i <= n; i += i & -i) {
  14.         for (ll j = y; j <= n; j += j & -j) {
  15.             for (ll f = z; f <= n; f += f & -f) {
  16.                 t[i][j][f] += delta;
  17.             }
  18.         }
  19.     }
  20. }
  21. ll get(ll x, ll y, ll z) {
  22.     ll ans = 0;
  23.     for (ll i = x; i > 0; i -= i & -i) {
  24.         for (ll j = y; j > 0; j -= j & -j) {
  25.             for (ll f = z; f > 0; f -= f & -f) {
  26.                 ans += t[i][j][f];
  27.             }
  28.         }
  29.     }
  30.     return ans;
  31. }
  32. ll sum(ll xl, ll yl, ll zl, ll xr, ll yr, ll zr) {
  33.     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);
  34. }
  35. signed main() {
  36. #ifdef _DEBUG
  37.     freopen("input.txt", "r", stdin);
  38.     freopen("output.txt", "w", stdout);
  39. #endif
  40.     ios_base::sync_with_stdio(false);
  41.     cin.tie(nullptr);
  42.     cout.tie(nullptr);
  43.     cin >> n;
  44.     ll indef;
  45.     //n++;
  46.     while (cin >> indef) {
  47.         if (indef == 3)return 0;
  48.         if (indef == 1) {
  49.             ll x, y, z, up;
  50.             cin >> x >> y >> z >> up;
  51.             x++, y++, z++;
  52.             upd(x, y, z, up);
  53.         }
  54.         else {
  55.             ll x1, y1, z1, x2, y2, z2;
  56.             cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
  57.             x2++, y2++, z2++;
  58.             cout << sum(x1, y1, z1, x2, y2, z2) << '\n';
  59.         }
  60.     }
  61. }
Add Comment
Please, Sign In to add comment