Cod sursa(job #122134)
type dulap=record
x,y:longint;
end;
var v:array[1..50100] of dulap;
x,y,q:array[0..100100] of longint;
n,i,j,dx,dy,u,d,m,s1,s2,s,min:longint;
begin
assign(input,'tribute.in');reset(input);
assign(output,'tribute.out');rewrite(output);
readln(n,dx,dy);
i:=dx;dx:=dy;dy:=i;
for i:=1 to n do
begin
readln(v[i].x,v[i].y);
inc(q[v[i].y]);
end;
for i:=1 to n do
if v[i].y>dx then
begin
inc(x[0],v[i].y-dx);
end;
d:=0;u:=dx;
for i:=u to 50000 do
s2:=s2+q[i];
for i:=1 to 50000 do
begin
s1:=s1+q[d];
s2:=s2-q[u];
x[i]:=x[i-1]+s1-s2;
inc(d);inc(u);
end;
fillchar(q,sizeof(q),0);
for i:=1 to n do
inc(q[v[i].x]);
for i:=1 to n do
if v[i].x>dy then
inc(y[0],v[i].x-dy);
d:=0;u:=dy;
s1:=0;s2:=0;
for i:=u to 50000 do
s2:=s2+q[i];
for i:=1 to 50000 do
begin
s1:=s1+q[d];
s2:=s2-q[u];
y[i]:=y[i-1]+s1-s2;
inc(d);
inc(u);
end;
min:=maxlongint;
for i:=0 to 50000 do
if x[i]<min then
min:=x[i];
s:=min;
min:=maxlongint;
for i:=0 to 50000 do
if y[i]<min then
min:=y[i];
s:=s+min;
writeln(s);
close(input);close(output);
end.