Pagini recente » Cod sursa (job #1072734) | Cod sursa (job #603199) | Cod sursa (job #2853366) | Cod sursa (job #2817654) | Cod sursa (job #642498)
Cod sursa(job #642498)
#include <stdio.h>
#include <string.h>
#define NMAX 50000
const int INF = 0x3f3f3f3f;
int a[NMAX + 50], b[NMAX + 50],xmin,xmax,ymin,ymax;
int solve(int *v, int d, int n,int l,int r)
{
int i, sum = 0;
for (i = d+l; i <= r; ++i)
sum += (i - d) * v[i];
int min = sum;
for (i = 1+l; i <= r; ++i)
v[i] += v[i - 1];
for (i = 1+l; i + d <= r; ++i) {
sum += v[i - 1];
sum -= n - v[i + d - 1];
if (sum < min)
min = sum;
}
return min;
}
int main()
{
freopen("tribute.in", "r", stdin);
freopen("tribute.out", "w", stdout);
int n, dx, dy, i, x, y;
scanf("%d %d %d", &n, &dx, &dy);
for (i = 0; i < n; ++i) {
scanf("%d %d", &x, &y);
{
if(x<xmin) xmin=x;
if(x>xmax) xmax=x;
if(y<ymin) ymin=y;
if(y>ymax) ymax=y;
}
++a[x];
++b[y];
}
printf("%d\n", solve(a, dx, n,xmin,xmax) + solve(b, dy, n,ymin,ymax));
return 0;
}