额,完全一个预处理的问题,为什么要放在DP里。。。
预处理每一个点对起点为那些的方块产生了影响,对应值+1;
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int maps[101][101];
struct list
{
int x;
int y;
}node[10001];
int main()
{
int n,i,j,k;
int w,h,s,t;
while(~scanf("%d",&n)&&n)
{
memset(maps,0,sizeof(maps));
scanf("%d%d",&w,&h);
for(i=0;i<n;i++)
{
scanf("%d%d",&node[i].x,&node[i].y);
}
cin>>s>>t;
int maxn;
maxn=0;
for(k=0;k<n;k++)
{
int xx,yy;
xx=node[k].x;
yy=node[k].y;
for(i=xx;i>=0&&i>xx-s;i--)
{
for(j=yy;j>=0&&j>yy-t;j--)
{
maps[i][j]++;
maxn=max(maps[i][j],maxn);
}
}
}
cout<<maxn<<endl;
}
return 0;
}