/*
ZJUT 1063
解析:没过的人注意了,s 和 t 没有说具体哪道边,所有情况都要考虑
采用压缩储存方式。。。。
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define manx 150
int mp[manx][manx],dp[manx][manx];
int w,h;
void init(){
for(int i=1;i<=h;i++){
for(int j=1;j<=w;j++) {
if(mp[i][j]) dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+1;
else dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1];
}
}
}
int fan(int x,int y){
int ans=0;
for(int i=x;i<=h;i++){
for(int j=y;j<=w;j++){
int sum=dp[i][j]-dp[i-x][j]-dp[i][j-y]+dp[i-x][j-y];
if(ans<sum) ans=sum;
}
}
return ans;
}
int main(){
int n;
while(cin>>n && n){
cin>>w>>h;
int a,b,s,t;
for(int i=0;i<=h;i++)
for(int j=0;j<=w;j++)
mp[i][j]=dp[i][j]=0;
for(int i=0;i<n;i++){
cin>>a>>b;
mp[b][a]=1; //计算机的行列 与 实际的不同
}
init();
cin>>s>>t;
int ans=fan(s,t);
int val=fan(t,s);
if(ans<val) ans=val;
cout<<ans<<endl;
}
}
ZJUT 1063 Lily's puzzle
最新推荐文章于 2021-10-18 20:08:11 发布