Pagini recente » Cod sursa (job #526856) | Cod sursa (job #2285551) | Cod sursa (job #1482989) | Cod sursa (job #771925) | Cod sursa (job #601569)
Cod sursa(job #601569)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n;
int dist_min (vector <int> X, int Dx)
{
int i, Min = 0;
for (i = Dx; i < X.size(); i++)
Min += X[i] * (i - Dx);
int dist = Min;
for (i = 1; i < X.size(); i++)
X[i] += X[i - 1];
for (i = 1; i + Dx < X.size() ; i++)
{
dist += X[i - 1];
dist -= n - X[i + Dx - 1];
Min = min (dist, Min);
}
return Min;
}
int main () {
ifstream in ("tribute.in");
ofstream out ("tribute.out");
int dx, dy, i, x, y;
in >> n >> dx >> dy;
vector <int> X (n), Y (n);
for (i = 0; i < n; i++)
{
in >> x >> y;
if (x >= X.size())
X.resize (x + 1);
if (y >= Y.size())
Y.resize (y + 1);
X[x] ++;
Y[y] ++;
}
out << dist_min (X, dx) + dist_min (Y, dy);
return 0;
}