#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
  bool flag;
} p[10100];
int lp;
void add(int x, int y) {
  p[lp].flag = false;
  p[lp].x = x;
  p[lp++].y = y;
}
int main() {
  int x1, y1, x2, y2;
  while (scanf("%d%d%d%d", &x1, &y1, &x2, &y2) != EOF) {
    int t1 = min(y1, y2);
    int t2 = max(y1, y2);
    int t3 = min(x1, x2);
    int t4 = max(x1, x2);
    lp = 0;
    for (int i = t1; i < t2; i++) add(t3, i);
    for (int i = t3; i < t4; i++) add(i, t2);
    for (int i = t1; i <= t2; i++) add(t4, i);
    for (int i = t3 + 1; i < t4; i++) add(i, t1);
    int m, ans = 0;
    cin >> m;
    for (int i = 1; i <= m; i++) {
      int x, y, r;
      scanf("%d%d%d", &x, &y, &r);
      for (int j = 0; j < lp; j++) {
        if (p[j].flag) continue;
        int t = (p[j].x - x) * (p[j].x - x) + (p[j].y - y) * (p[j].y - y);
        if (t <= r * r) p[j].flag = true;
      }
    }
    for (int j = 0; j < lp; j++) {
      if (p[j].flag == false) {
        ans++;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
