#include using namespace std; #define PB push_back #define ZERO (1e-10) #define INF (1<<29) #define CL(A,I) (memset(A,I,sizeof(A))) #define DEB printf("DEB!\n"); #define D(X) cout<<" "<<#X": "<B&&A-ZERO pll; typedef vector vi; typedef pair ii; typedef vector vii; #define IN(n) int n;scanf("%d",&n); #define FOR(i, m, n) for (int i(m); i < n; i++) #define F(n) FOR(i,0,n) #define FF(n) FOR(j,0,n) #define FT(m, n) FOR(k, m, n) #define aa first #define bb second void ga(int N,int *A){F(N)scanf("%d",A+i);} #define MX (5555) #define SZ (200001) int N,X,Y,dp[MX][MX+1],x[SZ],y[SZ],p[SZ],H[SZ],W[SZ]; int dyn(int u,int l){ if(u==N)return 0; int&v=dp[u][l]; if(~v)return v; v=dyn(u+1,l); if(l==N||(abs(x[W[u]]-x[W[l]]<=X&&abs(y[W[u]]-y[W[l]])<=Y&&H[W[u]]>H[W[l]])))v=max(v,p[W[u]]+dyn(u+1,u)); return v; } bool cp(int a,int b){return H[a]