#include <bits/stdc++.h>
using namespace std;
int T;
double pi = acos(-1.0);
vector<long long> v;
long long factorial(long long x) {
  long long total = 1;
  for (int i = 2; i <= x; i++) total *= i;
  return total;
}
bool isprime(long long x) {
  vector<bool> prime(x + 1, 1);
  prime[0] = prime[1] = 0;
  for (long long i = 2; i * i <= x; i++)
    if (prime[i])
      for (long long j = i * i; j <= x; j += i) prime[j] = 0;
  return prime[x];
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
long long temp = 1;
long long fastpow(long long base, long long exponent) {
  if (exponent == 0) return 1;
  if (exponent == 1) return (temp * base);
  if (exponent % 2 == 0)
    return fastpow(base * base, exponent / 2);
  else {
    temp *= base;
    fastpow(base * base, exponent / 2);
  }
}
void fill(long long f) {
  v.clear();
  long long x;
  for (long long i = 0; i < f; i++) {
    cin >> x;
    v.push_back(x);
  }
}
void printv() {
  int size = v.size() - 1;
  for (int i = 0; i <= size; i++) {
    cout << v[i] << " ";
  }
  cout << endl;
}
double dis(double x1, double y1, double x2, double y2) {
  return sqrt(pow(x1 - x2, 2.0) + pow(y1 - y2, 2.0));
}
void solve() {
  int x1, y1, x2, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  vector<pair<int, int>> v;
  int maxx = max(x1, x2);
  int minx = min(x1, x2);
  int maxy = max(y1, y2);
  int miny = min(y1, y2);
  for (int i = miny; i <= maxy; i++) {
    v.push_back(make_pair(minx, i));
    v.push_back(make_pair(maxx, i));
  }
  minx++;
  maxx--;
  for (int i = minx; i <= maxx; i++) {
    v.push_back(make_pair(i, miny));
    v.push_back(make_pair(i, maxy));
  }
  int n;
  cin >> n;
  vector<pair<int, pair<int, int>>> cor;
  while (n--) {
    int x, y, r;
    cin >> x >> y >> r;
    cor.push_back(make_pair(r, make_pair(x, y)));
  }
  int ans = 0;
  bool is = false;
  for (auto itr = v.begin(); itr != v.end(); itr++) {
    for (int i = 0; i < cor.size(); i++) {
      if (dis((*itr).first, (*itr).second, cor[i].second.first,
              cor[i].second.second) <= cor[i].first) {
        is = true;
        break;
      }
    }
    if (!is) {
      ans++;
    }
    is = false;
  }
  cout << ans << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  { solve(); }
  return 0;
}
