Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int n;
  6. int t[128][128][128];
  7.  
  8. long long sum(int x1, int y1, int z1, int x2, int y2, int z2) {
  9. long long result = 0;
  10. for (int i = x2 - 1; i >= x1 - 1; i = (i & (i + 1)) - 1)
  11. for (int j = y2 - 1; j >= y1 - 1; j = (j & (j + 1)) - 1)
  12. for (int k = z2 - 1; k >= z1 - 1; k = (k & (k + 1)) - 1)
  13. result += t[i][j][k];
  14. return result;
  15. }
  16.  
  17. void inc(int x, int y, int z, int delta) {
  18. for (int i = x - 1; i < n; i = (i | (i + 1)))
  19. for (int j = y - 1; j < n; j = (j | (j + 1)))
  20. for (int k = z - 1; k < n; k = (k | (k + 1)))
  21. t[i][j][k] += delta;
  22. }
  23.  
  24.  
  25. int main() {
  26.  
  27. int n;
  28. int type, value;
  29. int x1, y1, z1, x2, y2, z2;
  30.  
  31. cin >> n;
  32.  
  33. for (int i = 0; i < n; i++) {
  34. for (int j = 0; j < n; j++) {
  35. for (int k = 0; k < n; k++) {
  36. t[i][j][k] = 0;
  37. }
  38. }
  39. }
  40.  
  41. while (cin >> type) {
  42. if (type == 1) {
  43. cin >> x1 >> y1 >> z1 >> value;
  44. inc(x1, y1, z1, value);
  45. }
  46. if (type == 2) {
  47. cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
  48. long long result = sum(x1, y1, z1, x2, y2, z2);
  49. cout << result << endl;
  50. }
  51. if (type == 3) {
  52. break;
  53. }
  54. }
  55.  
  56.  
  57. return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement