#include #include #define NMAX (200000 + 7) #define LL long long using namespace std; LL n, x, y, dp[NMAX], maxx; struct city { LL lat; LL lon; LL h; LL p; bool operator <(const city &aux) const { return (h < aux.h); } } vec[NMAX]; int main() { scanf("%lld %lld %lld", &n, &x, &y); for(LL i = 1; i<= n; ++i) scanf("%lld %lld %lld %lld", &vec[i].lat, &vec[i].lon, &vec[i].h, &vec[i].p); sort(vec+1, vec+n+1); for(LL i = 1; i<= n; ++i) { dp[i] = 0; for(LL j = i-1; j>= 1; --j) { if(vec[i].h <= vec[j].h) continue; if(max(vec[i].lat - vec[j].lat, vec[j].lat - vec[i].lat) > x) continue; if(max(vec[i].lon - vec[j].lon, vec[j].lon - vec[i].lon) > y) continue; dp[i] = max(dp[i], dp[j]); } dp[i] += vec[i].p; } for(LL i = 1; i<= n; ++i) maxx = max(maxx, dp[i]); printf("%lld\n", maxx); return 0; }