#include #include #include #include #include #include using namespace std; const int XY_SHIFT = 500; void show(vector> &vv) { int r = 5; for (int i = -r; i <= r; i++) { int y = i + XY_SHIFT; printf("%4d: ", i); for (int j = -r; j <= r; j++) { int x = j + XY_SHIFT; printf("%3d ", vv[y][x]); } printf("\n"); } } int main() { int n, k; scanf("%d %d", &n, &k); vector x(n), y(n), hp(n); for (int i = 0; i < n; i++) { scanf("%d %d %d", &x[i], &y[i], &hp[i]); x[i] += XY_SHIFT; y[i] += XY_SHIFT; // printf("i,x,y,hp: %2d %4d %4d %4d\n", i, x[i], y[i], hp[i]); } vector> attacks(1502, vector(1502, 0)); vector> damages(1503, vector(1503, 0)); int ax, ay, w, h, d; for (int i = 0; i < k; i++) { scanf("%d %d %d %d %d", &ax, &ay, &w, &h, &d); ax += XY_SHIFT; ay += XY_SHIFT; w++; h++; // printf("i,ax,ay,ax+w,ay+h: %2d %4d %4d %4d %4d\n", i, ax, ay, ax+w, ay+h); attacks[ay][ax] += d; attacks[ay][ax + w] += -d; attacks[ay + h][ax] += -d; attacks[ay + h][ax + w] += d; } for (int i = 0; i < 1002; i++) { for (int j = 0; j < 1002; j++) { damages[i+1][j+1] = damages[i][j+1] + damages[i+1][j] - damages[i][j] + attacks[i][j]; } } // cout << "attacks ------------" << endl; // show(attacks); // cout << "damages ------------" << endl; // show(damages); int ans = 0; for (int i = 0; i < n; i++) { int rest = hp[i] - damages[y[i]+1][x[i]+1]; if (rest > 0) { ans += rest; } } printf("%d\n", ans); return 0; }