#include <bits/stdc++.h>
using namespace std;
int n;
struct wgh {
  int x, y, r;
} a[10001];
int x, xx, y, yy;
int main() {
  int i, j, k;
  int ans = 0;
  cin >> x >> y >> xx >> yy;
  cin >> n;
  for (i = 1; i <= n; i++) {
    scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].r);
  }
  for (i = min(x, xx); i <= max(x, xx); i++) {
    bool flag = true;
    for (k = 1; k <= n; k++) {
      if (a[k].r * a[k].r >=
          (a[k].x - i) * (a[k].x - i) + (a[k].y - y) * (a[k].y - y)) {
        flag = false;
        break;
      }
    }
    if (flag) ans++;
    flag = true;
    for (k = 1; k <= n; k++) {
      if (a[k].r * a[k].r >=
          (a[k].x - i) * (a[k].x - i) + (a[k].y - yy) * (a[k].y - yy)) {
        flag = false;
        break;
      }
    }
    if (flag) ans++;
  }
  for (j = min(y, yy) + 1; j <= max(y, yy) - 1; j++) {
    bool flag = true;
    for (k = 1; k <= n; k++) {
      if (a[k].r * a[k].r >=
          (a[k].y - j) * (a[k].y - j) + (a[k].x - x) * (a[k].x - x)) {
        flag = false;
        break;
      }
    }
    if (flag) ans++;
    flag = true;
    for (k = 1; k <= n; k++) {
      if (a[k].r * a[k].r >=
          (a[k].y - j) * (a[k].y - j) + (a[k].x - xx) * (a[k].x - xx)) {
        flag = false;
        break;
      }
    }
    if (flag) ans++;
  }
  cout << ans << endl;
  return 0;
}
