#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 100, M = 30, LG = 30, base = 2;
const int MOD = 1e9 + 7, mod = 1e9 + 9;
const long long INF = 1e9, inf = 1e18;
long long n, dx, dy;
long double dp[N];
pair<pair<long long, long double>, pair<long long, long long> > p[N];
int calck(pair<long long, long long> x, pair<long long, long long> y) {
  dx = x.first - y.first, dy = x.second - y.second;
  return dx * dx + dy * dy;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  ;
  cin >> n;
  for (int i = 0; i < n; i++)
    cin >> p[i].second.first >> p[i].second.second >> p[i].first.first >>
        p[i].first.second;
  sort(p, p + n);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < i; j++) {
      if (calck(p[i].second, p[j].second) <=
          (p[i].first.first - p[j].first.first) *
              (p[i].first.first - p[j].first.first))
        dp[i] = max(dp[i], dp[j]);
    }
    dp[i] += p[i].first.second;
  }
  cout << fixed << setprecision(10) << *max_element(dp, dp + n);
  return 0;
}
