Pagini recente » Cod sursa (job #3213954) | Cod sursa (job #387456) | Cod sursa (job #2659732) | Cod sursa (job #3222745) | Cod sursa (job #1142519)
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
#define NMAX 50001
int N , X[NMAX] , Y[NMAX] , Dx , Dy ;
int solve(int v[] ,int dim)
{
sort(v+1,v+N+1);
int st, dr , sum_dr , sum_st , best ;
st = dr = sum_st = sum_dr = 0;
dr = N;
while(dr && v[dr] > dim)
{
sum_dr += v[dr]-dim;
dr--;
}
best = sum_dr;
st = 1;
for(int i = 1 ; i + dim <= v[N] ; ++i )
{
while(v[st] < i && st < N)st++;
sum_dr -= N-dr;
sum_st += st-1;
while(v[dr+1] <= i+dim && dr < N)dr++;
best = min(best,sum_dr + sum_st);
}
return best;
}
int main()
{
freopen("tribute.in" , "r" , stdin );
freopen("tribute.out" , "w" , stdout );
scanf("%d%d%d" , &N , &Dx , &Dy);
for(int i = 1 ; i <= N ; ++i )
scanf("%d%d" , &X[i] , &Y[i]);
printf("%d" , solve(X,Dx)+solve(Y,Dy));
return 0;
}