Pagini recente » Monitorul de evaluare | Cod sursa (job #302611) | Cod sursa (job #3239942) | Cod sursa (job #3211593) | Cod sursa (job #675959)
Cod sursa(job #675959)
#include<stdio.h>
int const N=50001;
int ndx[N],ndy[N];
int calcul(int d, int nr[N])
{
int i,scor=0,min,sum[N];
sum[0]=0;
for(i=1;i<=N;i++)
sum[i]=sum[i-1]+nr[i];
for(i=d+1;i<N;i++)
scor+=nr[i]*(i-d);
min=scor;
for(i=1;i<N;i++)
{
scor+=sum[i-1]-(sum[N-1]-sum[i+d-1]);
if(scor<min) min=scor;
}
return min;
}
int main()
{
int i,n,x,y,dx,dy;
freopen("tribute.in","r",stdin);
freopen("tribute.out","w",stdout);
scanf("%d%d%d",&n,&dx,&dy);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
ndx[x]++;
ndy[y]++;
}
printf("%d",calcul(dx,ndx)+calcul(dy,ndy));
return 0;
}