// Made By Haireden Aibyn #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define fname "" #define INF 2147483647 #define MOD 1000000007 #define mp make_pair #define F first #define S second #define sc scanf #define all(x) x.begin(), x.end() #define size(x) int(x.size()) #define pr printf #define deb(x) cerr << " | " << #x << " = " << x #define pb push_back #define ex exit(0) #define y1 y4 typedef long long ll; typedef unsigned long long ull; const int N = 300500; pair , pair > a[N]; ll d[N]; int main() { int n; cin >> n; int x, y; cin >> x >> y; for (int i = 1; i <= n; i++) { cin >> a[i].S.F >> a[i].S.S >> a[i].F.F >> a[i].F.S; } sort(a + 1, a + 1 + n); ll mx = 0; for (int i = 1; i <= n; i++) { d[i] = 0; for (int j = 1; j <= i; j++) { if (a[i].F.F > a[j].F.F && abs(a[i].S.F - a[j].S.F) <= x && abs(a[i].S.S - a[j].S.S) <= y) { d[i] = max(d[i], d[j]); } } d[i] += a[i].F.S; mx = max(d[i], mx); } cout << mx; #ifndef ONLINE_JUDGE cerr << clock() << " ms"; #endif return 0; }