Pagini recente » Cod sursa (job #151170) | Cod sursa (job #1330130) | Cod sursa (job #2862391) | Cod sursa (job #1114533) | Cod sursa (job #2190553)
#include <iostream>
#include <stdio.h>
using namespace std;
int xmax, dx;
int nrst[50002], nrdr[50002], sumst[50002], sumdr[50002], vx[50002], vy[50002];
int functie () {
int i, minim;
for (i = 1; i <= xmax; i++)
nrst[i] = nrst[i - 1] + vx[i - 1];
for (i = 1; i <= xmax; i++)
sumst[i] = sumst[i - 1] + nrst[i];
for (i = xmax; i >= 0; i--)
nrdr[i] = nrdr[i + 1] + vx[i + 1];
for (i = xmax; i >= 0; i--)
sumdr[i] = sumdr[i + 1] + nrdr[i];
minim = 50001;
for (i = 0; i + dx - 1<= xmax; i++)
if (sumst[i] + sumdr[i + dx] < minim)
minim = sumst[i] + sumdr[i + dx];
return minim;
}
int main() {
freopen ("tribute.in", "r", stdin);
freopen ("tribute.out", "w", stdout);
int n, ymax, px, dy, i, py, s1, s2;
scanf ("%d%d%d", &n, &dx, &dy);
xmax = ymax = -1;
for (i = 1; i <= n; i++) {
scanf ("%d%d", &px, &py);
if (px > xmax)
xmax = px;
if (py > ymax)
ymax = py;
vx[px]++;
vy[py]++;
}
s1 = functie ();
for (i = 0; i <= xmax; i++) {
nrst[i] = sumst[i] = vx[i] = 0;
vx[i] = vy[i];
}
xmax = ymax;
dx = dy;
s2 = functie();
printf ("%d", s1 + s2);
return 0;
}