Pagini recente » Cod sursa (job #321330) | Cod sursa (job #1445830) | Cod sursa (job #1573485) | Rating AndreiIonescu (DJSUPER) | Cod sursa (job #78312)
Cod sursa(job #78312)
#include<stdio.h>
long long n,dx,yx,x[50002],y[50002],marquee[50001],cat[50001],xdrp,aux,i,best,j,ydrp,dst;
long long modul(long long val)
{
if (val<0) return -val;
return val;
}
int main()
{
freopen("tribute.in","r",stdin);
freopen("tribute.out","w",stdout);
scanf("%ld %ld %ld",&n,&dx,&yx);
for(i=1;i<=n;i++)
scanf("%ld %ld",&x[i],&y[i]);
for(i=1;i<=n;i++)
marquee[x[i]]++;
cat[0]=marquee[0];
for(i=1;i<=50000;i++)
cat[i]=cat[i-1]+marquee[i];
best=2000000;
i=0;
while (1)
{
if (cat[i]<n-cat[i+dx]) i++;
else break;
}
xdrp=i;
for(i=0;i<=50000;i++)
marquee[i]=0;
for(i=1;i<=n;i++)
marquee[y[i]]++;
cat[0]=marquee[0];
for(i=1;i<=50000;i++)
cat[i]=cat[i-1]+marquee[i];
best=2000000;
i=0;
while (1)
{
if (cat[i]<n-cat[i+yx]) i++;
else break;
}
ydrp=i;
for(i=1;i<=n;i++)
{
if (x[i]<=xdrp+dx&&x[i]>=xdrp) dst+=0;
else
if (modul(x[i]-xdrp)>modul(x[i]-xdrp-dx)) dst+=modul(x[i]-xdrp-dx);
else dst+=modul(x[i]-xdrp);
}
for(i=1;i<=n;i++)
{
if (y[i]<=ydrp+yx&&y[i]>=ydrp) dst+=0;
else
if (modul(y[i]-ydrp)>modul(y[i]-ydrp-yx)) dst+=modul(y[i]-ydrp-yx);
else dst+=modul(y[i]-ydrp);
}
printf("%lld",dst);
printf("\n");
fclose(stdout);
return 0;
}