#include <bits/stdc++.h>
using namespace std;
struct hz {
  int x, y, r;
};
int main() {
  int x1, x2, y1, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  int ans = 0, n;
  vector<hz> v;
  if (x1 > x2) swap(x1, x2);
  if (y1 > y2) swap(y1, y2);
  cin >> n;
  v.resize(n);
  for (int i = 0; i < n; i++) cin >> v[i].x >> v[i].y >> v[i].r;
  for (int i = x1; i <= x2; i++) {
    bool f = false, g = false;
    for (int j = 0; j < n; j++) {
      if (!f && (v[j].x - i) * (v[j].x - i) + (v[j].y - y1) * (v[j].y - y1) <=
                    v[j].r * v[j].r) {
        f = true;
      }
      if (!g && (v[j].x - i) * (v[j].x - i) + (v[j].y - y2) * (v[j].y - y2) <=
                    v[j].r * v[j].r) {
        g = true;
      }
    }
    if (f) ans++;
    if (g) ans++;
  }
  for (int i = y1 + 1; i < y2; i++) {
    bool f = false, g = false;
    for (int j = 0; j < n; j++) {
      if (!f && (v[j].x - x1) * (v[j].x - x1) + (v[j].y - i) * (v[j].y - i) <=
                    v[j].r * v[j].r) {
        f = true;
      }
      if (!g && (v[j].x - x2) * (v[j].x - x2) + (v[j].y - i) * (v[j].y - i) <=
                    v[j].r * v[j].r) {
        g = true;
      }
    }
    if (f) ans++;
    if (g) ans++;
  }
  cout << (x2 - x1 + 1) * 2 + (y2 - y1 - 1) * 2 - ans;
}
