Cod sursa(job #777001)
#include<fstream>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int n,x,y,dx,dy,i,smin1,smin2,p1,min1,min2,max1,max2,p2,s1,s2,f1[50001],f2[50001];
int main()
{f>>n>>dx>>dy;
for(i=1;i<=n;++i)
{f>>x>>y;
f1[x]++;
f2[y]++;
max1=max(max1,x);
max2=max(max2,y);
min1=min(min1,x);
min2=min(min2,y);
}
for(i=min1+1+dx;i<=max1;++i)
if(f1[i])
{p1+=f1[i];
s1+=f1[i]*(i-min1-dx);
}
smin1=s1;
for(i=min1+1;i<=max1-dx;++i)
{s2+=p2;
p2+=f1[i-1];
s2+=f1[i-1];
s1-=p1;
p1-=f1[i+dx];
if(s1+s2<smin1)
smin1=s1+s2;
}
s1=0;
p1=0;
for(i=min2+1+dy;i<=max2;++i)
if(f2[i])
{p1+=f2[i];
s1+=f2[i]*(i-min2-dy);
}
smin2=s1;
s2=0;
p2=0;
for(i=min2+1;i<=max2-dy;++i)
{s2+=p2;
p2+=f2[i-1];
s2+=f2[i-1];
s1-=p1;
p1-=f2[i+dy];
if(s1+s2<smin2)
smin2=s1+s2;
}
g<<smin1+smin2<<'\n';
return 0;
}