Pagini recente » Cod sursa (job #2043370) | Cod sursa (job #2949520) | Cod sursa (job #1355240) | Cod sursa (job #1325230) | Cod sursa (job #2191047)
int lin[50001],nrst[50001],sst[50001],nrdr[50001],sdr[50001],col[50001];
#include<stdio.h>
using namespace std;
int main(){
freopen("tribute.in","r",stdin);
freopen("tribute.out","w",stdout);
int n,dx,dy,i,a,b,mxa,ss,minn,mxb,sum;
ss=0;
scanf("%d%d%d",&n,&dx,&dy);
mxa=-1;
mxb=-1;
for(i=1;i<=n;i++){
scanf("%d%d",&a,&b);
if(a>mxa)
mxa=a;
if(b>mxb)
mxb=b;
lin[a]++;
col[b]++;
}
for(i=0;i<=mxa;i++)
nrst[i]=lin[i-1]+nrst[i-1];
for(i=1;i<=mxa;i++)
sst[i]=sst[i-1]+nrst[i];
for(i=mxa;i>=0;i--)
nrdr[i]=lin[i+1]+nrdr[i+1];
for(i=mxa-1;i>=0;i--)
sdr[i]=sdr[i+1]+nrdr[i];
minn=2000000000;
sum=0;
for(i=0;i<=mxa-dx;i++){
sum=sst[i]+sdr[i+dx];
if(sum<minn)
minn=sum;
}
ss=ss+minn;
for(i=0;i<=mxa;i++){
nrst[i]=0;
nrdr[i]=0;
sst[i]=0;
sdr[i]=0;
}
for(i=0;i<=mxb;i++)
nrst[i]=col[i-1]+nrst[i-1];
for(i=1;i<=mxb;i++)
sst[i]=sst[i-1]+nrst[i];
for(i=mxb;i>=0;i--)
nrdr[i]=col[i+1]+nrdr[i+1];
for(i=mxb-1;i>=0;i--)
sdr[i]=sdr[i+1]+nrdr[i];
minn=2000000000;
sum=0;
for(i=0;i<=mxb-dy;i++){
sum=sst[i]+sdr[i+dy];
if(sum<minn)
minn=sum;
}
ss=ss+minn;
printf("%d",ss);
return 0;
}