Pagini recente » Cod sursa (job #1313853) | Cod sursa (job #2790093) | Cod sursa (job #711259) | Cod sursa (job #2920856) | Cod sursa (job #997871)
Cod sursa(job #997871)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int NMAX = 50005, INF = 0x3f3f3f3f;
int N, DX, DY, FreqX[NMAX], FreqY[NMAX], X[NMAX], Y[NMAX];
int Sum[NMAX], Left[NMAX], Right[NMAX];
int Solve(int V[NMAX], int Empty)
{
for(int i = 0; i < N; ++ i)
{
Left[i] = Left[i - 1] + Sum[i - 1];
Sum[i] = Sum[i - 1] + V[i];
}
for(int i = N - 1; i >= 0; -- i)
{
Right[i] = Right[i + 1] + Sum[i + 1];
Sum[i] = Sum[i + 1] + V[i];
}
int Ans = INF;
for(int i = 0; i + Empty < N; ++ i)
Ans = min(Ans, Left[i] + Right[i + Empty]);
return Ans;
}
int main()
{
freopen("tribute.in", "r", stdin);
freopen("tribute.out", "w", stdout);
scanf("%i %i %i", &N, &DX, &DY);
for(int i = 1; i <= N; ++ i)
{
scanf("%i %i", &X[i], &Y[i]);
FreqX[X[i]] ++;
FreqY[Y[i]] ++;
}
printf("%i\n", Solve(FreqX, DX) + Solve(FreqY, DY));
return 0;
}