Pagini recente » Cod sursa (job #2154392) | Cod sursa (job #1640393) | Cod sursa (job #1326557) | Cod sursa (job #1612417) | Cod sursa (job #477558)
Cod sursa(job #477558)
#include <stdio.h>
#include <string.h>
int n, sol, d[4], x[50002], y[50002], f[50002];
inline int minim (int a, int b) {return a < b ? a : b;}
void rez ()
{
d[0] ++;
int i, n = 50000, s = 0, sol1[50002] = {0}, sol2[50002];
for (i = 0; i <= n; i ++)
{
sol1[i] = sol1[i - 1] + s;
s += f[i];
}
s = 0;
for (i = n; i >= 0; i --)
{
sol2[i] = sol2[i + 1] + s;
s += f[i];
}
int min = 1000000000;
for (i = 0; i <= n - d[d[0]]; i ++)
min = minim (sol1[i] + sol2[i + d[d[0]]], min);
sol += min;
}
int main ()
{
freopen ("tribute.in", "r", stdin);
freopen ("tribute.out", "w", stdout);
scanf ("%d %d %d", &n, &d[1], &d[2]);
int i;
for (i = 1; i <= n; i ++)
scanf ("%d %d", &x[i], &y[i]);
for (i = 1; i <= n; i ++)
f[x[i]] ++;
rez ();
memset (f, 0, sizeof (f));
for (i = 1; i <= n; i ++)
f[y[i]] ++;
rez ();
printf ("%d\n", sol);
return 0;
}